Я работал над созданием пакета как владелец устройства, но не добился успеха.Я рутировал свое устройство на то же самое.Я использую эту команду.
val exe = ShellExecuter()
var command = "dpm set-device-owner $packageName/ .MyDeviceAdminReceiver"
val outp = exe.Executer(command)
Фрагмент ShellExecuter
public String Executer(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
} catch (Exception e) {`enter code here`
e.printStackTrace();
}
String response = output.toString();
return response;
}
Фрагмент MyDeviceAdminReceiver
class MyDeviceAdminReceiver : DeviceAdminReceiver() {
companion object {
fun getComponentName(context: Context): ComponentName {
return ComponentName(context.applicationContext, MyDeviceAdminReceiver::class.java)
}
private val TAG = MyDeviceAdminReceiver::class.java.simpleName
}
override fun onLockTaskModeEntering(context: Context?, intent: Intent?, pkg: String?) {
super.onLockTaskModeEntering(context, intent, pkg)
Log.d(TAG, "onLockTaskModeEntering")
}
override fun onLockTaskModeExiting(context: Context?, intent: Intent?) {
super.onLockTaskModeExiting(context, intent)
Log.d(TAG, "onLockTaskModeExiting")
}
}
Фрагмент device_admin_reciever
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<device-admin>
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
</device-admin>
Я хочусделать моего корневого устройства владельцем пакета приложения программным способом, используя команды или любым другим способом, если кто-нибудь может предложить.