2012-08-14 8 views
44

मैंने एक ऐसा एप्लिकेशन लिखा है जो एंड्रॉइड फोन को दूरस्थ रूप से लॉक करता है। वह तब होता है जब सर्वर से एक विशेष कोड भेजा जाता है तो एप्लिकेशन विशेष कोड के आधार पर फोन को लॉक करता है। यह वह कोड है जिसका मैं उपयोग कर रहा हूं।एंड्रॉइड फोन को कोड के माध्यम से दूरस्थ रूप से अनलॉक करने के लिए

if (!mDPM.isAdminActive(mDeviceAdminSample)) { 
     // try to become active – must happen here in this activity, to get result 
     Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
     intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample); 
     intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"Admin is added to do security operation."); 
     startActivityForResult(intent, 0); 
     } else { 
     // Already is a device administrator, can do security operations now. 
     mDPM.lockNow(); 
     } 

उपर्युक्त कोड काम कर रहा है और यह फोन लॉक कर रहा है।

मैं नरम कीपैड से पासवर्ड दर्ज करके फोन अनलॉक करने में सक्षम हूं। कोड के माध्यम से इसे अनलॉक करने का कोई तरीका है?

मेरा प्रश्न कोड के माध्यम से फोन अनलॉक करने के लिए कैसे है

+0

मिनी एपीआई क्या है और आपने अपने मुख्य मैनिफेस्ट में उपयोग-अनुमति को जोड़ा है? –

उत्तर

1

कृपया ध्यान दें कि मैं एक Android डेवलपर नहीं कर रहा हूँ, लेकिन (यह अनलॉकिंग दूर ढंग मैं लॉक करने के लिए समझाया में किया जाना चाहिए):।

यदि आप this देखते हैं, तो ऐसा लगता है कि यदि आप "सुरक्षित लॉक" मोड में हैं, भले ही आप सही अनुमति रखते हैं, तो आप विंडो प्रबंधक को कुंजी गार्ड को खारिज करने के लिए कह सकते हैं।

+0

नहीं, यह काम नहीं करेगा क्योंकि मैं – kehnar

+0

लॉक करने के लिए पासवर्ड का उपयोग कर रहा हूं क्या आपने इसे आजमाया था? – HonkyTonk

+0

हाँ मैंने जांच की है। – kehnar

2

बाहर निकलने पर कीगार्ड को पुनः सक्षम (यदि आप की जरूरत है) के लिए इस

KeyguardManager manager = (KeyguardManager)context.getSystemService(KEYGUARD_SERVICE); 
kl = manager.newKeyguardLock("my-remote-app"); 
kl.disableKeyguard(); 

// कोशिश

onDestroy() { 
kl.reenableKeyguard(); 
} 

इस काम करता है < = आईसीएस। यह एक बहिष्कृत एपीआई है, उन्होंने आपको इसी तरह के प्रभाव के लिए WindowManager से झंडे का उपयोग करने का सुझाव दिया है। हालांकि मैं WindowManger का उपयोग कर समान प्रभाव उत्पन्न करने में विफल रहा।

आशा इस मदद करता है,

+0

पहले से ही चेक किया गया है। यह काम नहीं करता है। – kehnar

+0

मैंने इसे आईएनएस के साथ जीएनओटी एन 7000 में उपयोग किया है और यह काम करता है। क्या आपने KeyguardManager का उपयोग करने के लिए अतिरिक्त अनुमति दी थी? अन्यथा सुरक्षा प्रयास के कारण आपका इरादा मारे जा सकता है। – fadedreamz

+0

अनलॉक इरादे को झुकाते समय भी आप NEW_TASK ध्वज जोड़ सकते हैं। – fadedreamz

5

मुझे नहीं लगता कि अपने रिमोट अनलॉक लक्ष्य प्राप्त है।

एंड्रॉइड सेट अप करने का तरीका यह है कि कई ऐप्स में डिवाइस प्रशासक विशेषाधिकार हो सकता है, और कोई भी डिवाइस प्रशासक लॉक कमांड जारी कर सकता है, लेकिन अनलॉक उपयोगकर्ता से आना है।

मैं इसे सरल बनाने के लिए एक चीज का सुझाव दे सकता हूं: आपका ऐप कुंजी लॉक पासवर्ड को हटाने का प्रयास कर सकता है, और फिर उपयोगकर्ता स्क्रीन पर उंगली को स्लाइड करके डिवाइस के बिना डिवाइस का उपयोग कर सकता है।

अब आपके सुझाव के अनुसार एक स्नैग है, यदि आपका ऐप एकमात्र डिवाइस प्रशासक नहीं है। उस स्थिति में, कुछ अन्य व्यवस्थापक ऐप न्यूनतम पासवर्ड लंबाई (या कुछ अन्य पासवर्ड प्रतिबंध) सेट कर सकता है जो आपके ऐप को स्क्रीन लॉक पासवर्ड साफ़ करने से रोक देगा।

यदि आपका लक्ष्य किसी ऐसे उपयोगकर्ता की मदद करना है जो अपना स्क्रीन लॉक पासवर्ड भूल गया है, तो आपका सर्वर एक नया पासवर्ड आविष्कार कर सकता है, उपयोगकर्ता को सूचित कर सकता है कि नया पासवर्ड क्या है, और अपने ऐप पर नया पासवर्ड भी भेजें ऐप पासवर्ड लागू कर सकता है। उपयोगकर्ता फिर फोन अनलॉक कर सकता है। चिंता न करें, यह उतना जटिल नहीं है जितना लगता है।

4

लिखने के लिए खेद है - कोड से फोन अनलॉक करने का कोई तरीका नहीं है। यदि आपको ऐसा करने का कोई तरीका मिलता है - काम करने की कोई वारंटी नहीं है। तो रिमोट अनलॉक करने के लिए कोई रास्ता नहीं है, कस्टम लॉक स्क्रीन लिखना आदि।

1

मेरे ज्ञान के अनुसार, हम पासवर्ड संरक्षित फोन को प्रोग्रामिक रूप से अनलॉक नहीं कर सकते हैं।

+7

आपके पास कोई नाम भी नहीं है। – Shark

6

मेरा मानना ​​है कि आप अंतर्निहित स्क्रीन-लॉक को ओवरराइड नहीं कर सकते हैं जब तक आप सैमसंग और एचटीसी जैसे अपना डिवाइस नहीं बनाते।हालांकि, अपने ग्राहकों को अपने स्वयं के स्क्रीन-लॉक-जैसी ऐप का उपयोग करके आप शायद वह हासिल कर सकते हैं जो आप करने की कोशिश कर रहे हैं।

0

एक समाधान "कस्टम लॉकस्क्रीन" लिखना होगा। निश्चित रूप से, यह सबसे आसान तरीका नहीं है, लेकिन यह काम करेगा क्योंकि आप अपनी खुद की लॉकस्क्रीन के साथ जो कुछ भी चाहते हैं वह कर सकते हैं। यदि आप उस समाधान पर विचार कर रहे हैं, तो मुझसे संपर्क करने में संकोच न करें, मैं आपको कुछ उपयोगी लिंक दूंगा। चीयर्स!

+0

एंड्रॉइड कॉस्ट्यूम लॉक स्क्रीन का समर्थन नहीं करता –

+0

@Ilya_Gazman यह लगभग इसका समर्थन करता है, लेकिन एक आधिकारिक एपीआई के साथ नहीं। कस्टम लॉक स्क्रीन रखने के लिए, आपके ऐप को डिफ़ॉल्ट लॉन्चर होने की आवश्यकता होगी। यहां कुछ उदाहरण ऐप्स दिए गए हैं: http://www.androidauthority.com/best-music-player-apps-for-android-208990/ https://www.androidpit.com/best-android-lock-screen-apps –

+0

@androiddeveloper मुझे लगता है कि 4 वर्षों में बहुत कुछ हो सकता है। lol –

3

आप mDPM.resetPassword उपयोग करने की आवश्यकता ("", 0)

http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#resetPassword(java.lang.String, पूर्णांक)

जब पासवर्ड स्ट्रिंग के रूप में सेट "", वर्तमान पासवर्ड खाली मूल्यों & स्क्रीन लॉक गायब हो जाता है साथ बदल दिया है।

संबंधित मुद्दे