【问题标题】:Is there the unique identifier of SD card in Android API? And how to get it?Android API中是否有SD卡的唯一标识符?以及如何获得?
【发布时间】:2015-11-19 20:29:58
【问题描述】:

Android API 中是否有 SD 卡的唯一标识符,如何获取?如何区分手机中的不同 SD 卡?我需要SD卡的ID,请告诉我,谢谢。

【问题讨论】:

    标签: android local-storage sd-card


    【解决方案1】:

    简短的回答是,到目前为止,Android 中还没有直接的 Java API。


    如果你真的需要它,一种方法是运行以下命令并分析输出(你可以使用终端模拟器应用程序来测试这些):

    mount
    

    这将列出已挂载的分区,通常在其输出中会有一个/mnt/sdcard 及其相关的/dev/sdb1。您可以处理输出并找到您感兴趣的 sd 卡分区。

    blkid
    

    这需要root权限,即先运行su命令。这将打印块设备信息,/dev/sdb1 左右会有一个与之关联的 UID。

    【讨论】:

      【解决方案2】:

      您可以使用以下方法获取 SD 卡 ID

      public String getSDCardUniqueId()
          {
              String sd_cid = null;
              try {
      
                  File file = new File("/sys/block/mmcblk1");
                  String memBlk;
                  if (file.exists() && file.isDirectory()) {
      
                      memBlk = "mmcblk1";
                  } else {
                      //System.out.println("not a directory");
                      memBlk = "mmcblk0";
                  }
      
                  Process cmd = Runtime.getRuntime().exec("cat /sys/block/"+memBlk+"/device/cid");
                  BufferedReader br = new BufferedReader(new InputStreamReader(cmd.getInputStream()));
                  sd_cid = br.readLine();
                  //System.out.println(sd_cid);
      
              } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
              return sd_cid;
          }
      

      【讨论】:

      • 这个方法对安卓通用吗?还是特殊情况可用?顺便问一句,你从哪里来?谢谢
      • 使用这个,如果工作不要忘记标记为答案,这样其他人也觉得这个有用
      猜你喜欢
      • 2014-12-13
      • 2021-03-03
      • 2021-12-18
      • 2012-04-17
      • 2019-05-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多