我刚接触android,并在我的新屏幕关闭测试应用程序时停留在某一点。我正在尝试开发一个Android应用程序,通过单击应用程序的应用程序启动器图标直接关闭或锁定屏幕。在不启动MainActivity的情况下处理该命令,Android
我可以用我想要的功能锁定屏幕,但有一个问题。虽然我点击启动器中的屏幕锁图标,但它需要大约一秒钟的时间,然后锁定屏幕(时间由MainActivity启动)。
我想要删除时间延迟,只是想在用户点击启动器中的应用程序图标时处理该命令以锁定手机。但我无法弄清楚。
这里是的AndroidManifest.xml
<application
android:theme="@android:style/Theme.NoDisplay"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:allowBackup="true">
<activity android:name=".MainActivity"
android:excludeFromRecents="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="ScreenOffAdminReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/permissions" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
</application>
MainActivity.java
public class MainActivity extends Activity {
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
DevicePolicyManager deviceManger = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName compName = new ComponentName(this, ScreenOffAdminReceiver.class);
if (deviceManger.isAdminActive(compName)) {
deviceManger.lockNow();
finish();
} else {
Intent intent = new Intent("android.app.action.ADD_DEVICE_ADMIN");
intent.putExtra("android.app.extra.DEVICE_ADMIN", compName);
intent.putExtra("android.app.extra.ADD_EXPLANATION", getString(R.string.devicePolicyManagerMsg));
startActivityForResult(intent, 0);
}
Process.killProcess(Process.myPid());
}
}
ScreenOffAdminReceiver.java
public class ScreenOffAdminReceiver extends DeviceAdminReceiver {
public void onDisabled(Context context, Intent intent) {
Toast.makeText(context, R.string.deviceAdminDisabled, Toast.LENGTH_SHORT).show();
}
public void onEnabled(Context context, Intent intent) {
Toast.makeText(context, R.string.deviceAdminEnabled, Toast.LENGTH_SHORT).show();
}
}
个permissions.xml
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<force-lock />
</uses-policies>
</device-admin>
我只想当锁定屏幕移除延迟。任何帮助将不胜感激。由于
你能分享'permissions.xml'吗? – azizbekian
您是否尝试过不执行'Process.killProcess(Process.myPid())'?我觉得它可能会造成一些问题。 – azizbekian
是的,我没有它也尝试过,但是当一些新的应用程序打开,然后过程会自动死亡,并再次出现同样的问题 – kanudo