我编写了一个程序,其中包含广播接收器以捕获 ACTION_MEDIA_MOUNTED ,但它并不适用于所有设备。例如:我的魅族m2音符有otg支持,设备可以打开闪存,但在我的应用程序中它不起作用(没有打开)。在我的代码中,我需要获取写入或读取文件的目录(大容量存储目录)路径。
我的广播: 公共类UsbReceiver扩展了BroadcastReceiver {
private static final String ACTION_USB_PERMISSION = "com.poudanen.usbchecker.USB_PERMISSION";
@Override
public void onReceive(final Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_MEDIA_MOUNTED)) {
Toast.makeText(context, "Media device connected", Toast.LENGTH_SHORT).show();
Uri uriFile = intent.getData();
File dir = new File(uriFile.getPath());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putString("path", uriFile.getPath()).apply();
Toast.makeText(context, "Media device connected", Toast.LENGTH_SHORT).show();
if (dir.canRead()) {
//other code
}
}}