سؤال

لا بد لي من تنشيط قفل مفتاح نظام أندرويد (الشخص الذي تحصل عليه عند الضغط على انقطاع/يشنق زر). انظر هنا:

img

لقد استعرضت بالفعل المستندات ولكن كل ما وجدته كان مدير الطاقة و KeyGuardManager.. وبعد يبدو أن كلاهما لا يكون الحل :-(.

لذلك، هل يعرف الجميع كيفية تحقيق ذلك من تطبيق أندرويد؟ (إذا كانت أذونات خاصة مطلوبة، فليس هذه مشكلة ولكن تغيير إعدادات الجهاز ليس حلا ...)

تعديل: أو هل يعرف شخص ما أن هذا بالتأكيد غير ممكن على الإطلاق؟ بالمناسبة. حل Craigs مع مفاتيح الإرسال لا يعمل بعد الآن (انظر التعليقات).

هل كانت مفيدة؟

المحلول

كنت أبحث عن إجابة نفس السؤال المحدد لفترة من الوقت. على ما يبدو، بعد 2.0 فصاعدا، تمت إزالة امتيازات إدارة الأجهزة لمستوى التطبيق. ولكن مع FROYO - 2.2 يتم الكشف عن مدير سياسة الجهاز منح المطورين الأمريكيين العديد من ضوابط المستوى الإداري.

http://developer.android.com/guide/topics/admin/device-admin.html.

نصائح أخرى

ما كنت تبحث عن هو ReenableKeyguard () الطريقة في keyguardmanager.keyguardlock صديقي!

يبدو أن وظيفة قفل الشاشة يتم تنفيذها باستخدام الطريقة:

public void goToSleep(long time)

طريقة في PowerManager.java. وبعد من الممكن الحصول على إشارة إليها في هذه الأزياء:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

ومع ذلك فإن هذا يتطلب الإذن

android.permission.DEVICE_POWER

وهو إذن المستوى 2 المتاح للنظام فقط.

لذلك يبدو أن هذا غير قابل للقيام. هذا هو للإصدار 1.1 فقط، لا أعرف 1.5.

هناك مثال جيد جدا هنا:

http://www.anddev.org/Thind-Simulating_keystrokes_programatically-t717.html.

يبدو أنك تستطيع أن تسبب برمجيا يتم إرسال أي ضغط على أي ضغط على النظام إلى النظام. يبدو وكأنه keycode الذي تبحث عنه هو keycode_endcall، ولكن إذا لم يكن ذلك لا يعمل هناك الكثير من الرموز الأخرى لمحاولة هنا:

http://developer.android.com/Reference/android/view/keyevent.html.

لا أعرف إذا كان هناك أي دعوة API لتسبب حدوث القفل، ولكن هذا يبدو وكأنه حدوث حل قوي للغاية حتى تجد حلا أفضل.

تم العثور على حفر من خلال مصدر أندرويد WindowManagerservice الذي يبدو أنه يحتوي على طريقة عامة (startAppFreezingScreenLocked) لتنشيط هذا. قد يكون هذا مكانا جيدا للبدء في البحث عن إجابتك، كما لا يبدو الأمر كما لو أنه لا يمكنك الحصول على كائن WindowManagerservice مباشرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top