900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > android检测usb存储 USBdevice识别为存储设备并找到路径

android检测usb存储 USBdevice识别为存储设备并找到路径

时间:2020-03-03 08:07:33

相关推荐

android检测usb存储 USBdevice识别为存储设备并找到路径

如何检测可用于存储的已安装设备(如Pen-Drive)?如何找到安装的存储设备的路径,以便我可以从中读取文件?USBdevice识别为存储设备并找到路径

我用下面取权限访问安装器件广播接收机:

private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if (ACTION_USB_PERMISSION.equals(action)) {

synchronized (this) {

UsbDevice device = (UsbDevice) intent

.getParcelableExtra(UsbManager.EXTRA_DEVICE);

if (intent.getBooleanExtra(

UsbManager.EXTRA_PERMISSION_GRANTED, false)) {

if (device != null) {

// call method to set up device communication

Log.d(TAG, "onReceive: "+intent.getExtras().toString());

Log.d(TAG, "onReceive: "+intent.getData());

LinearLayout layoutUsbList = (LinearLayout)findViewById(R.id.layout_usb_list);

Button btn = new Button(MainActivity.this);

btn.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

layoutUsbList.addView(btn);

btn.setText(device.getDeviceId()+"\t"+device.getDeviceName());

Log.d(TAG, "onReceive: "+intent.getExtras().toString());

final String path = intent.getData().getPath();

Log.e(TAG, "onReceive: path of device received from intent: "+ path);

btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

File file = new File(path);

Toast.makeText(MainActivity.this, "file exists --> "+file.exists()+"", Toast.LENGTH_SHORT).show();

Toast.makeText(MainActivity.this, "file is directory --> "+file.isDirectory()+"", Toast.LENGTH_SHORT).show();

Log.d(TAG, "onClick: file is directory --> "+file.isDirectory()+"");

try{

Toast.makeText(MainActivity.this, file.listFiles().length+"", Toast.LENGTH_LONG).show();

}catch(Exception e){

Toast.makeText(MainActivity.this, "error while showing total items", Toast.LENGTH_SHORT).show();

}

}

});

}

} else {

Log.d("ERROR", "permission denied for device " + device);

}

}

}

}

};

清单文件:

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme">

android:name=".MainActivity"

android:configChanges="keyboard|orientation"

android:label="@string/app_name">

android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"

android:resource="@xml/device_filter"/>

-01-27

A_rmas

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。