Ответ 1
Создайте приложение триггера NFC и установите его на устройстве (отличном от того, на котором вы хотите сделать свое приложение владельцем устройства) с NFC.
Ниже приведен код запуска NFC
public class MainActivity extends Activity implements CreateNdefMessageCallback {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
nfcAdapter.setNdefPushMessageCallback(this, this);
}
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
try {
Properties p = new Properties();
p.setProperty(
DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,
"apk package name");
p.setProperty(
DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION,
"app download url");
p.setProperty(
DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM,
"apk checksum");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream out = new ObjectOutputStream(bos);
p.store(out, "");
final byte[] bytes = bos.toByteArray();
NdefMessage msg = new NdefMessage(NdefRecord.createMime(
DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, bytes));
return msg;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
Для контрольной суммы выполните следующую команду
cat your_device_owner_app_name.apk | openssl dgst -binary -sha1 | openssl base64 | tr '+/' '-_' | tr -d '='
- Вставить сгенерированную контрольную сумму в код запуска NFC.
- Скомпилируйте и запустите приложение триггера NFC на устройстве.
Теперь загрузите приложение apk, которое вы хотите сделать владельцем устройства на диске Google или Dropbox.
Возьмите новое устройство или factory reset устройство, на котором вы хотите установить приложение в качестве владельца устройства.
Перезагрузите устройство и на первом экране принесите ваше устройство, содержащее приложение триггера NFC, и коснитесь для передачи луча.
Ваше приложение будет загружено и будет установлено как владелец устройства.