我有一个安装在 100 多台设备上的 Android 应用程序。 (Android 5.1.1 API22 和 6.0.1 API 23)
https://developer.android.com/reference/android/app/admin/package-summary.html
我浏览了所有这些引用资料,但运气不好。
使用 devicePolicyManager,我收到错误:XXXXX App 不是设备所有者。
我知道有一种方法可以通过 shell 命令 (ADB) 获取设备所有者,但我无法通过 USB 在所有设备上单独执行此操作。
DevicePolicyManager deviceManger = (DevicePolicyManager)Forms.Context.GetSystemService(Context.DevicePolicyService); ComponentName demoDeviceAdmin = new ComponentName(Forms.Context, Java.Lang.Class.FromType(typeof(DeviceAdmin))); deviceManger.SetGlobalSetting(demoDeviceAdmin, "wifi_device_owner_configs_lockdown", "1");
最佳答案
源代码说,'设备所有者只能在未配置的设备上设置,除非它是由“adb”启动的,在这种情况下,如果没有帐户与设备关联,我们允许它'
如果您没有设置任何帐户,您可以使用 dpm 以编程方式设置它:
try {
Runtime.getRuntime().exec("dpm set-device-owner com.example.deviceowner/.MyDeviceAdminReceiver");
} catch (Exception e) {
Log.e(TAG, "device owner not set");
Log.e(TAG, e.toString());
e.printStackTrace();
}
引用: http://florent-dupont.blogspot.fr/2015/01/android-shell-command-dpm-device-policy.html
关于android - 如何在没有 NFC 和 ADB shell 命令的情况下让我的应用程序成为设备所有者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40359917/