android監聽TF卡插拔事件 判斷
如何通過註冊廣播獲知TF插拔事件:
註冊廣播:
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_EJECT);
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addDataScheme("file");
this.registerReceiver(usbReceiver, filter);
filter.addDataScheme("file");
this.registerReceiver(usbReceiver, filter);
如何判斷TF、USB是否插入以及獲取路徑:
通過反射獲取類 StorageManager 中的 getVolumePaths 方法獲取路徑。
private StorageManager mStorageManager;
private static String mInterSD; // 內建sd卡
private static String mExternalSD; // 外接sd卡 1
private static String mUSB; // U盤,外接sd卡2
private String[] mPath;
public void getStorageList() {
if (mActivity != null) {
mStorageManager = (StorageManager)
mActivity.getSystemService(Activity.STORAGE_SERVICE);
try {
mMethodGetPaths = mStorageManager.getClass().getMethod("getVolumePaths");
mPath = (String[]) mMethodGetPaths.invoke(mStorageManager);
if (mPath.length > 0) {
mInterSD= mPath[0];
}
if (mPath.length > 1) {
mExternalSD= mPath[1];
}
if (mPath.length > 2) {
mUSB= mPath[2];
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public boolean getExternalStorageState() {
if(TextUtils.isEmpty(EXTERNAL_STORAGE_DIRECTORY)) {
return false;
}
try {
return "mounted".equals(Environment.getStorageState(new File(mExternalSD)));
} catch (Exception rex) {
return false;
}
}
相關文章
- Android的事件處理——監聽介面方式Android事件
- 事件和事件監聽器事件
- 監聽滑鼠事件事件
- jQuery事件監聽jQuery事件
- Flutter事件監聽Flutter事件
- springboot事件監聽Spring Boot事件
- js 監聽事件JS事件
- JavaScript 事件監聽JavaScript事件
- vue監聽頁面中的某個div的滾動事件,並判斷滾動的位置Vue事件
- vue之監聽事件Vue事件
- 初識事件監聽事件
- 監聽鍵盤事件事件
- Spring Boot 事件和監聽Spring Boot事件
- deleted事件監聽報錯delete事件
- 如何移除事件監聽器事件
- java springboot監聽事件和處理事件JavaSpring Boot事件
- Android截圖監聽Android
- h5 storage事件監聽H5事件
- Spring事件釋出與監聽Spring事件
- 監聽所有模型的 saved 事件模型事件
- 如何監聽SAP CRM BOR事件事件
- flutter 中監聽滑動事件Flutter事件
- java 監聽 redis 過期事件JavaRedis事件
- 【LISTENER】Oracle分析連線監聽情況,判斷客戶端IP分佈Oracle客戶端
- netty服務端監聽客戶端連線加入和斷開事件Netty服務端客戶端事件
- 2018.03.31、Android-ObjectBox-監聽AndroidObject
- 異常監控和判斷
- document API之visibilitychange事件:判斷頁API事件
- 模型deleted事件監聽報錯解析模型delete事件
- Apache ZooKeeper - 事件監聽機制初探Apache事件
- MySQL 事件監聽 huangdijia/Laravel-triggerMySql事件Laravel
- vue 監聽頁面滾動事件Vue事件
- VUE-UNI事件轉發監聽Vue事件
- SpringBoot系列——事件釋出與監聽Spring Boot事件
- SpringBoot事件監聽器原始碼分析Spring Boot事件原始碼
- js 監聽事件的疊加和移除JS事件
- spring boot學習(3): SpringApplication 事件監聽Spring BootAPP事件
- 監聽瀏覽器的後退事件瀏覽器事件
- 統一監聽所有模型的模型事件模型事件