English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يشرح هذا المقال مثالاً على برنامج قفل الشاشة الذي تم تنفيذه في تطوير اندرويد. أشاركه معكم للاستفادة، وفقًا لما يلي:
حسب معرفتي، جميع الهواتف الذكية الأندرويد تستخدم زر الطاقة لقفل الشاشة يدويًا. عندما أستخدم الهاتف، يصل عدد مرات قفل الشاشة يدويًا في اليوم إلى 30 مرة على الأقل. إذا استخدمت زر الطاقة فقط، فإن عمر استخدام زر الطاقة لن يكون طويلاً.
على الرغم من أن هناك الكثير من البرامج على سطح المكتب التي تتضمن قفل الشاشة بتنقيد، ولكن لتنصيب هذه البرامج يجب تثبيت مكونات أخرى لها، وهو أمر يزعجني، لأنها تحدث تحديثات تلقائية بشكل دوري أو تعمل في الخلفية بعض الأشياء التي لا أريدها. لذا قررت كتابة برنامج قفل الشاشة الخاص بي.
بعد البحث في وثائق تطوير اندرويد، وجدت أن بدءاً من اندرويد 2.2، يحتوي API على طريقة lockNow (في حزمة android.app.admin.DevicePolicyManager)، يمكن للبرنامج الذي يفصل الشاشة أن يستخدم هذه الطريقة.
قبل كتابة الكود، هناك نوعان من الكائنات التي يجب أن نعرفها:
1、DevicePolicyManager
كما يُقال، وظيفة هذا الصنف هي إدارة الجهاز. من خلال هذا الصنف، يمكننا تحقيق وظائف مثل قفل الشاشة، ضبط إضاءة الشاشة حتى استعادة الإعدادات الافتراضية.
2、DeviceAdminReceiver
النوع الأب لذاك الصنف هو BroadcastReceiver، من خلال ميثود OnReceive يمكن تنفيذ أفعال مختلفة بناءً على Action المختلفة.
عملية تطوير هذا البرنامج تتم كما يلي:
للإستخدام الطرق في DevicePolicyManager، يجب أولاً تعريف مكون. ثم بدء DeviceAdminReceiver من خلال إدارة هذا المكون.
تسجيل إذاعة لمراقبة التغييرات في الأذونات، رمز في ملف AndroidMenifest.xml:
<receiver android:name=".LockScreenAdmin" android:label="@string/app_name" android:description="@string/app_name" android:permission="android.permission.BIND_DEVICE_ADMIN"> <meta-data android:name="android.app.device_admin" android:resource="@xml/lock_screen_admin" /> <intent-filter> <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> </intent-filter> </receiver>
في ذلك، يمثل permission الصلاحيات المطلوبة لهذه الوظيفة؛ android:name="android.app.device_admin" يمثل واجهة التبديل لهذا الإجراء؛ بينما يمثل android:resource="@xml/lock_screen_admin" ما يلي:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android"> <uses-policies> <force-lock /> </uses-policies> </device-admin>
1、 إنشاء فئة تُ 继د من DeviceAdminReceiver وتحقيق الطرق الضرورية. لا تحتاج إلى كتابة الكثير من الكود في هذه الفئة، وسأقوم بتخطيها.
2、 ما يلي هو الكود الأساسي.
هذا الكود يستخدم لتفعيل المكون في المرة الأولى التي تشغل فيها البرنامج، وعندما يتم تفعيله مرة واحدة فقط، سيظل المكون مفعلاً دائمًا. يمكنك استخدام startActivityForResult() للوصول إلى lockNow() في طريقة onResult لقفل الشاشة، وعندما لا يكون البرنامج في المرة الأولى، يمكنك直接 استدعاء lockNow() لقفل الشاشة.
if (mDevicepolicymanager.isAdminActive(mComponentname)) { mDevicepolicymanager.lockNow(); finish(); else { // 第一次运行程序 Intent intent = new Intent( DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentname); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "One key lock screen need to active);" startActivityForResult(intent, RESULT_ENABLE); }
إلى هنا، تم انتهاء جزء رئيسي من برنامج القفل الشاشة.
يمكن للقراء المهتمين بمزيد من المعلومات المتعلقة بAndroid الرجوع إلى موضوعات هذا الموقع: "ملخص تقنيات معالجة الصور والرسومات في Android"، "دليل تعليمي للبدء في تطوير Android والتحسين"، "ملخص تقنيات الت调试 والتخلص من المشاكل الشائعة في Android"، "ملخص تقنيات التشغيل的多媒体 (الصوت، الفيديو، التسجيل، إلخ) في Android"، "ملخص استخدام المكونات الأساسية في Android"، "ملخص تقنيات استخدام العرض View في Android"، "ملخص تقنيات استخدام التخطيط layout في Android"، و "ملخص استخدام العناصر التحكم في Android".
آمل أن يكون هذا المقال قد ساعد الجميع في تصميم برامج Android.
البيان: محتوى هذا المقال تم جمعه من الإنترنت، ويحق لصاحب الحقوق أن يكون المساهمين في الإنترنت يقدمون المحتوى بأنفسهم ويتم تحميله، ويتمتع هذا الموقع بالملكية، ويتمتع المحتوى بتعديل يدوي، ولا يتحمل الموقع أي مسؤولية قانونية ذات صلة. إذا اكتشفتم محتوى يشتبه في حقوق النسخ، مرحبًا بكم في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (يرجى استبدال #بـ @ عند إرسال البريد الإلكتروني) للإبلاغ، وتقديم الدليل، إذا تم التحقق من ذلك، فإن هذا الموقع سيقوم بإزالة المحتوى المزعوم عن حقوق النسخ فورًا.