我正在构建一个应用程序,它将被设置为平板电脑的设备所有者。该平板电脑是一种定制的信息亭类型设备。要将应用程序设置为设备所有者,我已执行以下操作:
<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
<receiver
android:name=".utils.MyDeviceAdminReceiver"
android:exported="true"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/policies" />
</receiver>
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<force-lock />
<reset-password />
</uses-policies>
</device-admin>
package com.homeapp.utils
import android.app.admin.DeviceAdminReceiver
import android.content.Context
import android.content.Intent
import android.widget.Toast
class MyDeviceAdminReceiver : DeviceAdminReceiver() {}
通过 android studio 构建应用程序后,我使用以下命令将应用程序设置为设备所有者:
adb shell dpm set-device-owner com.homeapp/com.homeapp.utils.MyDeviceAdminReceiver
也获得了成功:
Success: Device owner set to package com.homeapp/com.homeapp.utils.MyDeviceAdminReceiver
Active admin set to component com.homeapp/com.homeapp.utils.MyDeviceAdminReceiver
设置家庭应用程序后,现在当我尝试从 android studio 构建应用程序时,它失败并出现此错误:
Couldn't terminate previous instance of app
我找到了这个帖子,但上面提到的解决方案不起作用: https://issuetracker.google.com/issues/181004316
如何解决这个问题?
既然我从你的问题中了解到,你可以尝试- 使用删除设备所有者状态
adb shell dpm remove-active-admin com.homeapp/.utils.MyDeviceAdminReceiver
更新应用程序后重新分配设备所有者状态
adb shell dpm set-device-owner com.homeapp/.utils.MyDeviceAdminReceiver
错误原因:- 当应用程序获得设备所有者状态时,它会获得更高的特权并阻止 Android Studio 卸载或更新应用程序。