4
Properties p = new Properties();                        
p.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,"com.somepackage.app");
p.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION,"https"//example.com/app/app.apk");
p.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM,"akjlsdghadkq");
p.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_SSID, "aaaSSID");
p.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_PASSWORD,"password");
p.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_SECURITY_TYPE, "WPA");
p.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_HIDDEN, "false");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream out;
out = new ObjectOutputStream(bos);
p.store(out, "");
final byte[] bytes = bos.toByteArray();
record = (NdefRecord.createMime("application/com.android.managedprovisioning", bytes));

上記のコードを NFC メッセージに使用しました。Wifi部分を除いて、すべて正常に動作します。Wifi が NFC メッセージに含まれている場合、プロセスは「Connecting Wifi」画面で停止します。

Wi-Fi 設定が NFC メッセージに含まれていない場合、ネットワークが選択された利用可能な Wi-Fi ネットワークのリストが表示されます。その後、指定されたダウンロード URL から .apk ファイルをダウンロードし、チェックサムを計算して、nfc メッセージで指定されたチェックサムで検証します。最後に、デバイスの所有者がアクティブ化されます。

この問題は、Wifi の詳細が NFC メッセージで指定されている場合にのみ発生します。デバイス所有者のプロビジョニング プロセスが「Connecting Wifi」で停止します。

間違った Wifi パスワードを入力した場合も同様です。パスワードが間違っているという兆候はありません。

これで私を助けてください!

4

1 に答える 1