English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dieser Artikel beschreibt ein Ein-Klick-Lockscreen-Programm, das durch Android-Programmierung implementiert wurde. Ich teile es mit Ihnen, um Ihnen zur Verfügung zu stellen, wie folgt:
Laut meinem Verständnis verwenden alle Android-Smartphones den Power-Knopf, um manuell den Bildschirm zu sperren. Wenn ich mein Telefon verwende, sind die Anzahl der manuellen Sperren innerhalb eines Tages sicherlich nicht weniger als30-mal. Wenn man nur den Power-Knopf verwendet, wird die Lebensdauer des Power-Knopfes sicherlich nicht lange sein.
Obwohl viele Desktop-Softwareprogramme mittlerweile ein Ein-Klick-Lockscreen integriert haben, ist es ärgerlich, dass man diese Software installieren muss, da sie regelmäßig automatisch aktualisiert wird oder im Hintergrund Dinge läuft, die ich nicht will. Daher habe ich beschlossen, mein eigenes Lockscreen-Programm zu schreiben.
Nach der Suche in den Android-Entwicklungsdocs habe ich festgestellt, dass von android 2.2Zunächst enthält die API eine lockNow-Methode (im Paket android.app.admin.DevicePolicyManager), über die das Lockscreen-Programm diese Methode verwenden kann.
Bevor wir mit dem Schreiben des Codes beginnen, gibt es zwei Klassen, die wir verstehen müssen:
1、DevicePolicyManager
Wie der Name schon sagt, dient diese Klasse dazu, das Gerät zu verwalten. Mit dieser Klasse können wir Funktionen wie Bildschirmsperre, Helligkeitsanpassung und sogar Wiederherstellung der Werkseinstellungen usw. realisieren.
2、DeviceAdminReceiver
Der Vaterklasse dieser Klasse ist BroadcastReceiver, und durch die OnReceive-Methode kann je nach Action verschiedene Aktionen ausgeführt werden.
Der Entwicklungsprozess dieses Programms ist im Allgemeinen wie folgt:
Um Methoden von DevicePolicyManager zu verwenden, muss zunächst ein Component definiert werden. Anschließend kann ein DeviceAdminReceiver über die Verwaltung dieses Komponenten gestartet werden.
注册一个广播,用于监听权限的变化,代码在AndroidManifest.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>
Hierbei steht permission für die erforderlichen Berechtigungen; android:name="android.app.device_admin" zeigt das Umleitungsinterface dieser Aktion an; und 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、 以下是关键代码。
Dieser Code wird verwendet, um den Component beim ersten Start zu aktivieren. Nachdem er einmal aktiviert wurde, bleibt der Component immer aktiv. Mit startActivityForResult() kann lockNow() im onResult-Methodenaufruf zum Sperrbildschirm aufgerufen werden. Wenn es sich nicht um den ersten Start handelt, wird lockNow() direkt zum Sperrbildschirm aufgerufen.
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, "一键锁屏需要激活"; startActivityForResult(intent, RESULT_ENABLE); }
至此,锁屏程序的主要部分就讲完了。
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家的Android程序设计有所帮助。
声明:本文内容来自网络,版权归原作者所有。内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未进行人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#oldtoolbag.com(在发送邮件时,请将#替换为@进行举报,并提供相关证据。一经查实,本站将立即删除涉嫌侵权内容。)