2 GB の内部メモリと 8 GB の外部メモリが使用可能な Android セットアップ ボックスがあり、デバイスには USB デバイスを接続するためのスロットがあります。接続されている USB デバイスのメモリ情報を取得したかったのです。複数の USB デバイスを接続したとします。Broadcast Receiver を使用して接続切断イベントを取得しています。しかし、取得できないメモリ情報を取得したい場合。内蔵の外部メモリ情報しか取得できません ガイドしてください。
私はアンドロイド開発に非常に慣れていません。私はこの方法を試しました
private void sizeInfo(){
File path = Environment.getDataDirectory();
StatFs stat2 = new StatFs(path.getPath());
long blockSize = stat2.getBlockSize();
long availableBlocks = stat2.getAvailableBlocks();
String format = Formatter.formatFileSize(this, availableBlocks * blockSize);
// Log.d("space","Path : "+ path +"\n");
Log.d("space","Available Space in GB : "+ format);
String str = Environment.getExternalStorageState();
//Log.d("Checking","Media "+Environment.isExternalStorageEmulated());
}
次のようにして、接続されているデバイスのリストを取得しています
private void updateDeviceList() {
Log.d("Checking","updateDeviceList function");
int DivCount =0;
HashMap<String, UsbDevice> connectedDevices = mUsbManager.getDeviceList();
if (connectedDevices.isEmpty()) {
usbDevice = null;
Log.d("Checking", "No Currently Device Conneted");
} else {
for (UsbDevice device : connectedDevices.values()) {
DivCount++;
Log.d("Device Info","DeviceId " +device.getDeviceId()+"\n");
Log.d("Device Info","ProductId "+device.getProductId()+"\n");
Log.d("Device Info","DeviceName "+device.getDeviceName()+"\n");
Log.d("Device Info","DeviceClass "+device.getDeviceClass());
String str = Build.MANUFACTURER;
Log.d("Device Info","Model "+str);
usbDevice =device;
sizeInfo();
}
}
}
接続されているデバイスのリストを取得できますが、リムーバブル USB のメモリ情報を取得できません