1. 程式人生 > >獲取Android裝置掛載的所有儲存器

獲取Android裝置掛載的所有儲存器

android系統提供了Environment.getExternalStorageDirectory()介面獲得儲存器的路徑,但是這個介面往往給的結果並不是我們想要的,在某些裝置上它返回的是手機內部儲存,某些裝置它返回的手機外部儲存。還有就是某些Android裝置支援擴充套件多個sdcard,這個時候想要獲得所有儲存器的掛載路徑,這個介面是沒有辦法辦到的。

  • 怎麼獲取Android裝置所有儲存器的位置呢?或者說獲得所有的掛載點系統提供了一個StorageManager,它有一個方法叫getVolumeList,這個方法的返回值是一個StorageVolume陣列,StorageVolume類中封裝了掛載路徑,掛載狀態,以及是否可以移除等等資訊。但是很可惜,這個方法是隱藏的api,所以我們只能通過反射來呼叫這個方法了,下面是這個方法的原始碼。
    12345678910111213141516publicStorageVolume[]getVolumeList(){if(mMountService==null)returnnewStorageVolume[0];try{Parcelable[]list=mMountService.getVolumeList();if(list==null)returnnewStorageVolume[0];intlength=list.length;StorageVolume[]result=newStorageVolume[length];for(inti=0;i<length;i++){result
    [i]=(StorageVolume)list[i];}returnresult;}catch(RemoteExceptione){Log.e(TAG,"Failed to get volume list",e);returnnull;}}
  • 通過反射,獲取到Android裝置所有儲存器。
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 publicclassStorageInfo{ publicStringpath; publicStringstate
    ; publicbooleanisRemoveable; publicStorageInfo(Stringpath){ this.path=path; }

    相關推薦

    獲取Android裝置掛載所有儲存器

    android系統提供了Environment.getExternalStorageDirectory()介面獲得儲存器的路徑,但是這個介面往往給的結果並不是我們想要的,在某些裝置上它返回的是手機內部儲存,某些裝置它返回的手機外部儲存。還有就是某些Android裝置支

    Android獲取儲存裝置掛載路徑

    Environment.getExternalStorageDirectory()是Android 2.x時代的產物,那時Android主流裝置只有很小的內建儲存器,然後都會外接一張sd卡,那時這個方法返回的就是外接sd卡的根路徑。 但隨著Android進入4

    獲取Android裝置上的所有儲存裝置

    Android系統提供了Environment.getExternalStorageDirectory()介面獲得儲存裝置的路徑,但是這個介面往往給出的結果並不是我們想要的,在某些裝置上它返回的是手機內部儲存,某些裝置上返回的手機外部儲存。還有就是某些Android裝置支援

    [方法提煉] 獲取Android裝置序列號方法

    通過這個方法可以檢測裝置是否連線成功,如果有一臺或者多臺裝置,可以將所有裝置序列號全部輸出 1 # -*- coding:utf-8 -*- 2 import os 3 4 def attachDeviceList(): 5 device_list = [] 6 cmd_

    Android開發 - 獲取Android裝置的唯一標識碼(Android 6.0或更高)

    在我們的APP開發中,通常需要獲取到裝置的唯一標識。在Android6.0之前,有很多方法我們可以方便獲取到硬體的唯一標識,但是在Android6.0之後,Android系統大幅限制了我們獲取裝置的硬體資訊。 Android6.0之前的方法(已過時) DEVICE_ID通getSyste

    adb獲取android裝置資訊

    import subprocess #ADB執行命令列,包括一些常用命令 class ADBShell: def __init__(self, adb_path=""): self.adb_path = adb_path def invoke(self,cmd):

    獲取Android裝置唯一標識碼

    唯一標識碼這東西在網路應用中非常有用,例如檢測是否重複註冊之類的。import android.provider.Settings.Secure;private String android_id = Secure.getString(getContext().getContentResolver(),

    如何獲取Android裝置唯一識別碼

    如果我們想唯一識別一臺Android裝置,就需要獲取裝置的唯一識別碼。怎麼獲取呢? 下面是Android裝置一些可供選擇的唯一識別碼及其適用範圍: IMEI (International Mobile Equipment Identity Number,國際移動裝置識別碼) 用於在手機網路中識別

    獲取Android裝置的唯一識別碼|裝置號|序號|UUID

    如何獲取一個能唯一標識每臺Android裝置的序號? 這個問題有很多答案,但是他們中的大部分只在某些情況下有效。 根據測試: 所有的裝置都可以返回一個 TelephonyManager.getDeviceId() 所有的GSM裝置 (測試裝置都裝載有SIM卡) 可以

    獲取Android裝置的唯一標識碼(Android 6.0或更高)

    在我們的APP開發中,通常需要獲取到裝置的唯一標識。在Android6.0之前,有很多方法我們可以方便獲取到硬體的唯一標識,但是在Android6.0之後,Android系統大幅限制了我們獲取裝置的硬體資訊。 Android6.0之前的方法(已過時) D

    Android之如何獲取Android裝置的唯一識別碼筆記

    因為需要在專案中需要獲得一個穩定、可靠的裝置唯一識別碼,因此搜了一些網上的資料。今天我們將介紹幾種方式。        1. DEVICE_ID 假設我們確實需要用到真實裝置的標識,可能就需要用到DEVICE_ID。在以前,我們的Android裝置是手機,這個 DE

    穩定獲取Android裝置唯一碼(UUID)的解決方案

    最近做的一個專案中需要用到Android裝置唯一碼(UUID)來標識一臺裝置, Android中裝置唯一碼有很多,如:MAC地址、IMEI號(DeviceId)、IMSI號、ANDROID_ID、序列號(SerialNumber)等, 但並不是所有裝置上都能穩定獲取到這些值。 最後專案中採用的是MAC地址

    獲取Android裝置常規引數資訊(SN,IMEI)及定製資訊

    因使用定製Android系統的RFID巴槍 RFID巴槍註冊,使用的是外包裝的序列號,在進入APP需要本地與註冊資訊作校驗.校驗通過才允許使用APP. 1.常規獲取Android裝置資訊. 獲取IMEI號 Android裝置可以通過設定介面、撥號*#0

    獲取Android裝置資訊

    在開發的過程中有可能根據需要顯示一些裝置的狀態或系統資訊。下面是收集到的一些資訊 一、獲取當前電量 每當電量改變時系統都會廣播發Intent.ACTION_BATTERY_CHANGED訊息出來,應用程式只需要註冊並建立一個接收器就能獲取當前的電量 建立一個廣播接收器類Ba

    獲取Android裝置的唯一識別碼

     1、所有的裝置都可以返回一個 TelephonyManager.getDeviceId() 2、所有的GSM裝置 (測試裝置都裝載有SIM卡) 可以返回一個TelephonyManager.getSimSerialNumber() 3、所有的CDMA 裝置對於

    [Android][獲取Android裝置唯一標識]

    1.落筆緣由 最近需要獲取能夠標誌Android裝置的唯一標識,但是由於Android系統版本不同或者root等諸多原因,造成有些裝置標識為NULL或者標識相同的問題,在網上搜索了相關資料,總結一下各種情況。 2.程式碼 import android.

    獲取Android裝置的唯一識別符號

    最近做的一個需求,客戶要求賬號最多繫結三臺裝置。我之所以說是唯一識別符號而不是獲取Android裝置的IMEI是因為IMEI並不是唯一的解決方案,也不一定是最優解,具體還要看需求。 IMEI 先說一下最常用的IMEI,android系統中通常用下面這段程式碼

    獲取 Android 裝置的唯一標識碼

    這個問題有很多答案,但是他們中的大部分只在某些情況下有效。 根據測試: 所有的裝置都可以返回一個 TelephonyManager.getDeviceId() 所有的GSM裝置 (測試裝置都裝載有SIM卡) 可以返回一個TelephonyManager.getSim

    獲取Android裝置的唯一識別碼UUID

    如何獲取一個能唯一標識每臺Android裝置的序號? 這個問題有很多答案,但是他們中的大部分只在某些情況下有效。 根據測試: 所有的裝置都可以返回一個 TelephonyManager.getDeviceId() 所有的GSM裝置 (測試裝置都裝載有

    獲取Android裝置的方向 -- gsensor

    http://www.cnblogs.com/bpasser/archive/2011/10/17/2214517.html 帶有g-sensor的Android裝置上可通過API獲取到裝置的運動加速度,應用程式通過一些假設和運算,可以從加速度計算出裝置的方向 獲取裝