最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Q適配之IMEI替換為Android_id

 更新時(shí)間:2019年11月26日 10:18:40   作者:廣島冰鹽  
這篇文章主要介紹了Android Q適配之IMEI替換為Android_id,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前置工作:

項(xiàng)目配置升到對(duì)應(yīng)的29版本

compileSdkVersion: 29,
buildToolsVersion: ‘29.0.0',
minSdkVersion : 19,
targetSdkVersion : 29,
javaVersion : JavaVersion.VERSION_1_8

升級(jí)到Android Q后的權(quán)限提示界面

升級(jí)到Android Q后的權(quán)限提示界面

老版本獲取IMEI的方法:

public static String getIMEI(Context context) {
    String deviceId = null;
    try {
      TelephonyManager tm = (TelephonyManager) context
          .getSystemService(Context.TELEPHONY_SERVICE);
      deviceId = tm.getDeviceId();
      if (deviceId == null || "".equals(deviceId)) {
        return getLocalMacAddress(context);
      }
    } catch (Exception e) {
      e.printStackTrace();
      if (deviceId == null || "".equals(deviceId)) {
        return getLocalMacAddress(context);//獲取Mac地址,在Android 9 P版本中,地址會(huì)隨機(jī)變化,不可用作唯一標(biāo)識(shí),可去掉。
      }
    }

    return deviceId;
  }

Android Q獲取IMEI方法

public static String getIMEI(Context context) {
    String deviceId = null;
    try {
      TelephonyManager tm = (TelephonyManager) context
          .getSystemService(Context.TELEPHONY_SERVICE);
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        deviceId = Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
      } else {
        // request old storage permission
        if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
          // TODO: Consider calling
          //  ActivityCompat#requestPermissions
          // here to request the missing permissions, and then overriding
          //  public void onRequestPermissionsResult(int requestCode, String[] permissions,
          //                     int[] grantResults)
          // to handle the case where the user grants the permission. See the documentation
          // for ActivityCompat#requestPermissions for more details.
          return null;
        }
        deviceId = tm.getDeviceId();
      }
      if (deviceId == null || "".equals(deviceId)) {
        return getLocalMacAddress(context);
      }
    } catch (Exception e) {
      e.printStackTrace();
      if (deviceId == null || "".equals(deviceId)) {
        return getLocalMacAddress(context);
      }
    }

    return deviceId;
  }

谷歌官方有聲明:手機(jī)恢復(fù)出廠設(shè)置,Android ID會(huì)重置。

如果用戶拒絕權(quán)限,也還是會(huì)獲取不到設(shè)備標(biāo)識(shí)。

所以具體優(yōu)化需自行結(jié)合開發(fā)情景,有更好的建議的道友可以評(píng)論補(bǔ)充說明^ - ^…

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android中DownloadManager實(shí)現(xiàn)文件下載實(shí)例詳解

    Android中DownloadManager實(shí)現(xiàn)文件下載實(shí)例詳解

    這篇文章主要介紹了Android中DownloadManager實(shí)現(xiàn)文件下載實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Android中使用ZXing生成二維碼(支持添加Logo圖案)

    Android中使用ZXing生成二維碼(支持添加Logo圖案)

    ZXing是谷歌的一個(gè)開源庫(kù),可以用來生成二維碼、掃描二維碼。接下來通過本文給大家介紹Android中使用ZXing生成二維碼(支持添加Logo圖案),需要的朋友參考下
    2017-01-01
  • App中如何獲取gradle的配置信息

    App中如何獲取gradle的配置信息

    這篇文章主要給大家介紹了關(guān)于App中如何獲取gradle的配置信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Android實(shí)現(xiàn)自動(dòng)輪播圖效果

    Android實(shí)現(xiàn)自動(dòng)輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)自動(dòng)輪播圖效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Flutter快速制作一個(gè)水印組件實(shí)例詳解

    Flutter快速制作一個(gè)水印組件實(shí)例詳解

    這篇文章主要為大家介紹了Flutter快速制作一個(gè)水印組件實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 如何在android中制作一個(gè)方向輪盤詳解

    如何在android中制作一個(gè)方向輪盤詳解

    這篇文章主要給大家介紹了關(guān)于如何在android中制作一個(gè)方向輪盤的相關(guān)資料,這個(gè)是在手游領(lǐng)域中很常見的用于控制方向的輪盤,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)攔截讀取功能

    Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)攔截讀取功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)攔截讀取功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android 實(shí)現(xiàn)控件懸浮效果實(shí)例代碼

    Android 實(shí)現(xiàn)控件懸浮效果實(shí)例代碼

    本篇文章主要介紹了Android 實(shí)現(xiàn)控件懸浮效果實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Android 藍(lán)牙自動(dòng)匹配PIN碼跳過用戶交互示例

    Android 藍(lán)牙自動(dòng)匹配PIN碼跳過用戶交互示例

    本篇文章主要介紹了Android 藍(lán)牙自動(dòng)匹配PIN碼跳過用戶交互示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Android利用SAX對(duì)XML進(jìn)行增刪改查操作詳解

    Android利用SAX對(duì)XML進(jìn)行增刪改查操作詳解

    在項(xiàng)目中會(huì)遇到對(duì)于XML的增刪改查,下面這篇文章主要給大家介紹了關(guān)于Android利用SAX對(duì)XML進(jìn)行增刪改查操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01

最新評(píng)論

汝城县| 常州市| 沧州市| 开平市| 沁阳市| 文昌市| 湘乡市| 临桂县| 江永县| 开鲁县| 淮南市| 呼伦贝尔市| 交口县| 南雄市| 鲜城| 罗山县| 陕西省| 南阳市| 谷城县| 和政县| 峡江县| 依安县| 沈丘县| 罗甸县| 安塞县| 丰都县| 原平市| 南开区| 合肥市| 衡水市| 浏阳市| 遂昌县| 甘肃省| 彭泽县| 四子王旗| 宁都县| 滁州市| 乌鲁木齐市| 江油市| 泸定县| 旅游|