设备所有者在非根设备(Android L)上,没有NFC,使用adb shell,dpm set-device-owner

设备所有者在非根设备(Android L)上,没有NFC,使用adb shell,dpm set-device-owner,第1张

概述这里的最终目的是在’kiosk mod’中设置一个设备. They say您不需要NFC也不需要生根来实现应用程序成为device owner.我还没有看到这个方法的完整示例但是让我们试试: adb shell dpm set-device-owner <package>/.<ReceiverImplementation> 应该这样做…所以我这样做,并得到: java.lang.SecurityE 这里的最终目的是在’kiosk mod’中设置一个设备.

They say您不需要NFC也不需要生根来实现应用程序成为device owner.我还没有看到这个方法的完整示例但是让我们试试:

adb shell dpm set-device-owner <package>/.<ReceiverImplementation>

应该这样做…所以我这样做,并得到:

java.lang.SecurityException: Neither user 2000 nor current process has androID.permission.BIND_DEVICE_admin.

因此,以下代码返回false.

((DevicePolicyManager) getSystemService(Context.DEVICE_POliCY_SERVICE))   .isDeviceOwnerApp(getApplicationContext().getPackagename())

This STO question提出了类似的问题,但未指明实际的失败.

清单文件和源代码的其余部分主要来自this google sample

<manifest    package="com.example.androID.deviceowner"    xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:versionCode="1"    androID:versionname="1.0">    <application        androID:allowBackup="true"        androID:icon="@drawable/ic_launcher"        androID:label="@string/app_name"        androID:theme="@style/Apptheme">        <activity            androID:name=".MainActivity"            androID:label="@string/app_name">            <intent-filter>                <action androID:name="androID.intent.action.MAIN"/>                <category androID:name="androID.intent.category.LAUNCHER"/>            </intent-filter>        </activity>        <receiver            androID:name=".DeviceOwnerReceiver"            androID:description="@string/app_name"            androID:label="@string/app_name"            androID:permission="androID.permission.BIND_DEVICE_admin">            <Meta-data                androID:name="androID.app.device_admin"                androID:resource="@xml/device_owner_receiver"/>            <intent-filter>                <action androID:name="androID.app.action.ACTION_DEVICE_admin_ENABLED"/>            </intent-filter>        </receiver>    </application></manifest>

我试图这样做的设备目前是LG G Pad.

解决方法 您的清单文件似乎正确.
您应该知道,在执行此命令时,它可能来自您系统的状态.在成功运行dpm命令之前,应检查许多点:

>确保您的应用已经安装,就像任何其他休闲应用程序一样
>确保在使用之前没有为当前用户设置任何帐户(确保在“设置”>“帐户”中未设置任何帐户).
>不应该有已注册的现有设备所有者

最好的事情(这就是我在实验时所做的)是完全重启工厂并避免大多数配置步骤(除了强制性步骤“配置Wi-Fi”和“名称”),并且不关联任何Google帐户.
配置完成后,您肯定处于干净状态.
然后,

>激活调试
>使用IDE安装您的应用程序(或使用pm安装…)
>运行命令adb shell dpm set-device-owner …

我写了an article explaining most of these steps on my blog,看看它,它可能对你的情况有用.

总结

以上是内存溢出为你收集整理的设备所有者在非根设备(Android L)上,没有NFC,使用adb shell,dpm set-device-owner全部内容,希望文章能够帮你解决设备所有者在非根设备(Android L)上,没有NFC,使用adb shell,dpm set-device-owner所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1136084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存