2011-11-16 41 views
10

Android搭載端末に挿入されたSDカードの音量ラベルを確認することはできますか?AndroidでSDカードのボリュームラベルを見つける

は、私は、Androidが持つように設計されていることを理解ちょうど1(Environment.getExternalStorageDirectory()によって返される)が、「外部記憶装置」と下に取り付けられたSDカードなどの内部フラッシュを持っている野生でかなりの数のデバイスが存在する「外部記憶装置」それともワイルダーの組み合わせ(this other questionを参照)であってもよい。 /proc/mountsを読んでこれらの追加デバイスを列挙することは可能ですが、ユーザーにそれらを識別するための何かが必要です。ボリュームラベルにアクセスする機会はありますか?

Linuxのvfatドライバignores the volume label dentry altogetherとutil-linux reads the vfat itselfblkidを確認しました。私はまた、少なくとも私が持っているデバイスでは、SDカードのブロックデバイスがモード660と所有者root.rootを持っていることを確認したので、私はそれを行うことはできません。だから、基本的には、それを読むことができるユーティリティがあるかどうかということになる。

+1

これは http://stackoverflow.com/questions/3348643/how-to-read-the-sd-card-id-number/5191484#5191484 –

+0

@Draxあなたを助けるかもしれ:いいえ、それをそうでないかもしれません(私たちはすでにそれを知っています)。ボリュームラベルとはまったく関係ありません。ボリュームラベルは、ユーザーがコンピュータでSDカードをフォーマットするときに指定するものです。 –

答えて

0

私はそれが正確にアンドロイドで動作するかわかりませんが、Linuxでは、ボリューム名が指定されているsd-cardのマウントに関するカーネルメッセージがあります。あなたはdmesgとcat/sys/devices/mmcを試すことができます...(またはそのようなもの)

+0

Dmesgはドライバが完全にそれを無視するか、それともできないのでしょうか?コメントですでに述べたように、 '/ sys/devices/mmc ...'はまったく別のものです(CIDを使用していますが、ボリュームラベルはありません。これはファイルシステムのものでSDではなくカード物)。 –

0

blkidコマンドの出力を解析しようとしてください。それは私のために働くが、それがファームウェアに依存する機能であるかどうかわからない。私はpermission deniedをAVDにこのコマンドで得た。

+0

私たちが持っているデバイスにはコマンドがありません。私が自分でコンパイルした場合、パーミッションがないので動作しません。 –

+0

'blkid'は私のデバイス(カスタム2.2ファームウェア)と私のデスクトップLinuxシステムの両方でroot権限なしで動作します。したがって、最後の手段として、NDKの助けを借りてあなたのプロジェクトに 'blkid'機能を組み込もうとするかもしれません。しかし、簡単ではありません... – borisstr

+0

もちろん、それはデスクトップ上で動作しますが、それはAndroidでないのでそれは全く無関係です。カスタムAndroidファームウェアでも動作する可能性がありますが、これは無関係です。ランダムなユーザーにはカスタムファームウェアがないためです。標準のファームウェアにはそれがなく、通常のアプリケーションからrawデバイスを読み取ることはできません。 –

1

解決策が見つかりました。

最も簡単な解決策は、busyboxのを構築し、このようにそれを使用することです: busyboxのは

複雑なソリューションをBLKIDは、Android用BLKID、あなたはそのソースコード(blkid_dev_devname機能)に必要なものを見つける見つけることです。

-1

これが役立つかどうかわかりません.DDMSを使用すると、システムのフォルダが表示されます。私の場合、sdカードは/ mnt/media_rwにあります。

あなたはherehere

私はそれが役に立てば幸いより多くの情報を得ることができます。

+0

いいえ、ddmsがデバイス上で実行されていないため、サポートされません。 ddmsがそれらを入手する場所を見つけたら、それは別の問題かもしれません。 –

+0

私はデバイス上でDDMSを実行しません。私は、デバイスに接続されている私のコンピュータ上でDDMSを実行します。もちろん、コンピュータはデバイスを認識する必要があります。 –

+0

したがって、電車で誰かの手の中のデバイスではDDMSはまったく役に立たない。はい、その質問に明示的には記載されていませんが、デバイスを分析してどのようにコンピュータを使用するのかを知っていれば、とにかくすでにラベルを知っていることがほぼ確実です。興味深いケースは、デバイス上のアプリケーションからラベルを取得することです。 –

関連する問題