tag*_*y22 5 android nfc device-policy-manager android-5.0-lollipop
我正在尝试使用NFC在设备上设置设备所有者包.这里的Lollipop概述中提到了:
要部署和激活设备所有者,您必须在设备处于未设置状态时执行从编程应用程序到设备的NFC数据传输.此数据传输发送的信息与托管配置中描述的配置意图相同.
原因是一旦设置完毕,您就可以使用屏幕固定功能将设备锁定在自助服务终端模式.我已经能够通过在rooted设备上将device_owner.xml文件放到data/system /来手动设置设备所有者来测试此kiosk模式.
我之前从未使用过NFC,所以我可能会离开,但我根据这里的信息提出了以下NdefMessage :
Properties properties = new Properties();
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, "com.my.package");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_SSID, "MyWiFiSSID");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_PASSWORD, "WifiPassword");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM, "C9AD9E082457819B54CF76255A400375E4127112");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION, "https://dl.dropboxusercontent.com/u/xxx/app-release.apk");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(properties);
byte[] yourBytes = bos.toByteArray();
NdefRecord ndefRecord = NdefRecord.createMime(DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, yourBytes);
NdefMessage msg = new NdefMessage(ndefRecord);
Run Code Online (Sandbox Code Playgroud)
将此发送到我刚刚使用Lollipop预览恢复的设备会导致它显示:
哎呀!无法设置您的设备.联系您的IT部门.
它似乎正在认识到它正在接收一个提供请求的事实,但我不认为它正在读取我设置的属性,它不会尝试连接wifi.
看来您需要使用 来Properties.store正确创建 NdefRecord 的字节。
Properties properties = new Properties();
properties.setProperty(...);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream out = new ObjectOutputStream(bos);
properties.store(out, "");
byte[] bytes = bos.toByteArray();
NdefMessage msg = new NdefMessage(NdefRecord.createMime(DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, bytes));
Run Code Online (Sandbox Code Playgroud)
目前,我在下载 APK 时遇到问题且校验和失败。完全不知道为什么。
| 归档时间: |
|
| 查看次数: |
5997 次 |
| 最近记录: |