Android設(shè)備6.0獲取u盤掛載廣播

一,清單文件靜態(tài)注冊廣播

<receiver android:name=".receiver.UsbReceiver">
            <intent-filter >
                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
                <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
                <action android:name="android.os.storage.action.VOLUME_STATE_CHANGED" />
            </intent-filter>
        </receiver>

二,在廣播中通過VolumeInfo判斷掛載過程和卸載過程

public class UsbReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals(VolumeInfo.ACTION_USB_DEVICE_ATTACHED)) {
            Log.d("action===", "裝載");
        } else if (action.equals(VolumeInfo.ACTION_USB_DEVICE_DETACHED)) {
            Log.d("action===", "卸載USB");
            Toast.makeText(context, "USB設(shè)備移除", Toast.LENGTH_SHORT).show();
            System.exit(0);
        } else if (action.equals(VolumeInfo.ACTION_VOLUME_STATE_CHANGED)) {
            int intExtra = intent.getIntExtra(VolumeInfo.EXTRA_VOLUME_STATE, VolumeInfo.STATE_UNMOUNTED);
            if (intExtra == VolumeInfo.STATE_MOUNTED) {
                
                        Toast.makeText(UiUtils.getContext(), "發(fā)現(xiàn)USB設(shè)備", Toast.LENGTH_LONG).show()
            }
        }
    }
}


public class VolumeInfo {
    /**
     * U盤掛載類型  插入U盤 STATE_UNMOUNTED->STATE_MOUNTED;拔出U盤  STATE_EJECTING->STATE_UNMOUNTED->STATE_BAD_REMOVAL
     */
    //卸載
    public static final int STATE_UNMOUNTED = 0;
    //狀態(tài)監(jiān)測
    public static final int STATE_CHECKING = 1;
    //掛載完成
    public static final int STATE_MOUNTED = 2;
    //只讀
    public static final int STATE_MOUNTED_READ_ONLY = 3;
    //格式化
    public static final int STATE_FORMATTING = 4;
    //開始移除
    public static final int STATE_EJECTING = 5;
    //無法掛載
    public static final int STATE_UNMOUNTABLE = 6;
    //刪除
    public static final int STATE_REMOVED = 7;
    //移除完成
    public static final int STATE_BAD_REMOVAL = 8;
    /**
     * 接受廣播key
     */
    public static final String ACTION_VOLUME_STATE_CHANGED = "android.os.storage.action.VOLUME_STATE_CHANGED";
    public static final String EXTRA_VOLUME_ID = "android.os.storage.extra.VOLUME_ID";
    public static final String EXTRA_VOLUME_STATE = "android.os.storage.extra.VOLUME_STATE";
    /**
     * 剛掛載和關(guān)閉
     */
    public static final String ACTION_USB_DEVICE_ATTACHED= "android.hardware.usb.action.USB_DEVICE_ATTACHED";
    public static final String ACTION_USB_DEVICE_DETACHED= "android.hardware.usb.action.USB_DEVICE_DETACHED";
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容