1、使用NFC方式(適用於Android 5.0及更高版本)
NFC是Near Field Communication(近距離無線通訊技術)。
用NFC傳輸的方式來使壹個App成為Device Owner(設備所有者),我們需要兩部手機。是的,略坑爹。
首先,兩臺設備都要支持NFC並激活了NFC,並且激活了Android Beam功能(在設置裏的NFC and payment裏)。
第壹臺設備(Mobile A)是要在其上安裝App,並使這個App成為Device Owner的。這個App可以是任意的壹個App(我們的例子中是壹個叫作Kiosk Mode Demo的App。
第二臺設備(Mobile B)是要provision那臺Mobile A的(使Mobile A上的App成為Device Owner),算是數據傳輸方/服務提供方。Mobile B上安裝了我們的SetDeviceOwner這個App。
然後,在那個SetDeviceOwner的App裏的源碼中,比較關鍵的設置是下面幾個:
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME
對應要成為Device Owner的App的完整包名,例如:com.enmingx.test
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_LOCATION
對應要成為Device Owner的App的下載URL,例如:
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM
對應要成為Device Owner的App的checksum(校驗碼),要計算校驗碼,可以用adb命令:
cat MY_APP.apk | openssl dgst -binary -sha1 | openssl base64 | tr '+/' '-_' | tr -d '='
EXTRA_PROVISIONING_WIFI_SSID
對應用於下載要成為Device Owner的App的WiFi的名稱
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
對應用於下載要成為Device Owner的App的安全類型,比如WPA或WPA2
最後,在那個SetDeviceOwner的App源碼裏,把這些數據都“打包”到壹個NFC Bundle中,用NFC技術來傳輸到另壹臺手機。
妳應該知道如何使用NFC來進行數據傳輸吧:
讓兩個手機足夠接近,背靠背,然後會聽到清脆的壹聲“叮”,顯示"Touch to beam",然後妳輕觸作為傳輸方的那臺設備的屏幕,就開始傳輸了。
為了成功使壹臺設備上的App成為Device Owner,這臺設備必須從來沒被配置過(當然更不能被Root過),也不能被設置過Device Owner或Profile Owner。如果已經配置過了,可以恢復出場設置。
2、 使用激活碼方式(僅適用於Android 5.0和5.1,不適用於6.0或更高版本),這個因為6.0不適用,所以用處不大。