跳到主要內容

發表文章

目前顯示的是 8月, 2018的文章

Android_關於拿到android id 和 device id

寫app時剛好碰到加密的部分,需要拿到裝置的辨識碼,原本是要拿mac address的,因為保護使用者資料的原因,限制了開發者的存取,結果從2014年的方法看到2018年1月,試過都一樣是拿不到的狀態! 而且後來仔細查詢後,也不是所有手機都拿得到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.0 android studio的版本為3.1.4 手機版本為6.0