admin管理员组

文章数量:1567245

静态注册

  1. 新建UsbBroadcast继承BroadcastReceiver,然后重新onReceive方法

    
    public class UsbBroadcast extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            switch (intent.getAction()) {
    
                case Intent.ACTION_MEDIA_MOUNTED: {
    
                    break;
                }
                case Intent.ACTION_MEDIA_UNMOUNTED: {
    
                    break;
                }
                default:
                    break;
            }
    
        }
    
    }
  2. 在AndroidManifest.xml中注册我们定义的广播接收器
    U盘插入和拔出广播为:
    android.intent.action.MEDIA_MOUNTED
    android.intent.action.MEDIA_UNMOUNTED

        <receiver android:name=".broadcast.UsbBroadcast">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_MOUNTED"/>
                <action android:name="android.intent.action.MEDIA_UNMOUNTED"/>
                <data android:scheme="file"/>
            </intent-filter>
        </receiver>

    在上面的xml中,注意添加<data android:scheme="file"/>

  3. 这时候插拔U盘我们的广播接收器就能够收到消息了

动态注册

  1. 跟静态注册的第一步相同,新建我们的广播接收器
  2. 在activity启动时进行动态注册广播

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            UsbBroadcast usbBroadcast  = new UsbBroadcast();
            IntentFilter usbFilter= new IntentFilter();
            usbFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
            usbFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
            usbFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
            usbFilter.addDataScheme("file");
            registerReceiver(usbBroadcast,usbFilter);
        }
    }
    
  3. 接收广播


无法接收到广播的可能性

  1. 取消静态注册广播,改为使用动态注册广播
  2. 静态注册中,记得添加<data android:scheme="file"/>
  3. 动态注册广播时,添加usbFilter.addDataScheme("file");

获取U盘的各种信息

下一篇blog将描述如何获取U盘的各种信息,包括U盘名称、格式、剩余空间、挂载路径等

本文标签: 事件