寫app時剛好碰到加密的部分,需要拿到裝置的辨識碼,原本是要拿mac address的,因為保護使用者資料的原因,限制了開發者的存取,結果從2014年的方法看到2018年1月,試過都一樣是拿不到的狀態!
而且後來仔細查詢後,也不是所有手機都拿得到mac address的,就乾脆尋找其他方法,目前的想法是取得android id 和device id做加密.
android id 的部分其實加這一行就能取得了
而且後來仔細查詢後,也不是所有手機都拿得到mac address的,就乾脆尋找其他方法,目前的想法是取得android id 和device id做加密.
android id 的部分其實加這一行就能取得了
String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
device id就比較麻煩,除了要在AndroidManifest.xml加上
<uses-permission android:name="android.permission.READ_PHONE_STATE" />以外,還要在MainActivity加上來確認有沒有得到允許,如果你的app前個版本是沒有詢問此權限的,重新build過後會crash,不過手機會很好心的跟你說要變更哪些權限,照著點一點就行if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {// We do not have this permission. Let's ask the user
}詢問完後,TelephonyManager tm = (TelephonyManager) MainActivity.this.getSystemService(Context.TELEPHONY_SERVICE);String deviceId = tm.getDeviceId();即可拿到device id!希望對大家有幫助0.0android studio的版本為3.1.4手機版本為6.0
留言
張貼留言