android - 检测正在从电话/设备管理员中删除的应用程序

标签 android broadcastreceiver device-admin

有些应用程序可以检测到它们何时从电话/设备管理员中删除。我在 Android 开发者网站上搜索过,但找不到当用户在电话/设备管理员中点击我们应用程序旁边的“勾选”复选框时触发的标志或接收器。

最佳答案

在Broadcast receiver中,有一个从DeviceAdminReceiver类扩展而来的回调函数,如下所示。一旦用户单击停用按钮,此函数就在设备管理员禁用应用程序之前调用 onDisableRequested,在用户单击停用后它调用 onDisabled。 首先,我们必须在锁定设备后调用启动器(主屏幕)。 如果我们使用此逻辑,用户将无法停用。如果有任何更优化的方式欢迎随时分享/更新。

@Override
    public CharSequence onDisableRequested(Context context, Intent intent) { 
            Intent homeScreenIntent = new Intent(Intent.ACTION_MAIN);
            homeScreenIntent.addCategory(Intent.CATEGORY_HOME);
            homeScreenIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(homeScreenIntent);
            DevicePolicyManager deviceManger;
            deviceManger = (DevicePolicyManager) context.getSystemService(
                    Context.DEVICE_POLICY_SERVICE);
            deviceManger.lockNow();
         return context.getString("App won't work if you disable this setting");
    }

关于android - 检测正在从电话/设备管理员中删除的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45946201/

相关文章:

android - 设备所有者管理员/DevicePolicyManager,可以在 Android 上自动打开移动数据和数据漫游吗?

android - 如何删除在 Android 上启用了 Activity 设备管理员的应用程序?

java - 尝试使用 Highgui.imread (OpenCV + Android) 加载图像

android - Android 上的 WeakReference 有什么问题吗?

android - 线程同步@Native Android

android - Xamarin 蓝牙输入流未读取所有字节(有时)

java - AlarmManager 没有在每个时间间隔精确调用 BroadcastReceiver

android - 一种在android中获取解锁事件的方法?

java - 强制停止应用程序后检测用户更改时钟时间

android - QR 配置后系统应用程序丢失