Androidデバイスアプリケーション読み出し外付けUディスクデバイス方法

1349 ワード

くだらない話は多く言わないで、本文に行って、今androidが各種のプラットフォームの上で移植するため、多くのandroid設備はすべてUディスクを支持することができて、しかしandroid APIは現在SDカードの獲得しかなくて、Uディスクの獲得がなくて、Uディスクを支持する設備も各メーカーが自分で振り回して、同じではありませんて、そのため折衷の方法を探して解決する必要があります;
各メーカーがどのようにUディスクのマウントを実現しても、基本的には/mntディレクトリの下にマウントされているので、今はUディスクが/mntの下にマウントされているディレクトリをどのように取得するかが重要ですが、前提はUディスクが現在マウントされているかどうかを知る必要があります.私たちは2つのステップに分けて言います:1.Uディスクがすでに掛かっているかどうかを検出します.2.USBメモリのマウントパスを取得し、3......マウントパスを知っていて、ファイルを読んでファイルを書いてブラウズするなど言う必要はありません.
1.Uディスクがマウントされているかどうかを検出し、リアルタイム/proc/partitionsファイルを直接読み取ることができます.なぜか、コードを見てわかります.
File Usbfile = new File("/proc/partitions");
		if (Usbfile.exists())
		{
			try
			{
				FileReader file = new FileReader("/proc/partitions");
				BufferedReader br = new BufferedReader(file);
				String strLine = "";
				while ((strLine = br.readLine()) != null)
				{
					if (strLine.indexOf("sd") > 0)
					{
						//    ,       ,              U   
						break;
					}
				}
				br.close();
				file.close();
			} catch (Exception e)
			{
				e.printStackTrace();
			}
		}

2.Uディスクのマウント経路を取得する、Uディスク、SDカード等の外付け記憶装置のマウントは、大部分が/system/etc/voldである.fstabにマウントパスが指定されているので、簡単でしょう.直接ファイルを読み込んで、Uディスクがどのディレクトリにマウントされているかを知ることができます.安心して、基本的には/mntディレクトリの下で、よし、コードの読み取りについては、上の第1点を見てみましょう.マルチUディスクのマウント区分については、ここまでです.自分で解決しましょう.
so easy!