2

編集:これはユーザーエラーでした(申し訳ありません)。以下に回答させていただきました。

SD カードのデータにアクセスする必要があるアプリケーションを開発しています。開発デバイス (Android 2.1 を搭載した odroid) で実行すると、ルート アクセス権があり、次を使用してパスを作成できます。

File sdcard = Environment.getExternalStorageDirectory();
String path = sdcard.getAbsolutePath() + File.separator + "mydata"
File data = new File(path);
File[] files = data.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String filename) {
        return filename.toLowerCase().endsWith(".xyz");
    }});

ただし、ルート アクセス権がない電話 (2.1) にこれをインストールすると、files == null が取得されます。これは、SDカードからデータを読み取るための適切な権限がないためだと思います。/sdcard のファイルを一覧表示しようとすると、files == null も表示されます。したがって、構築されたパスがなくても同じことが当てはまります。

また、このアプリはアプリ ストアを通じて配布されることを意図しておらず、SD カードに個別にコピーされたデータを使用する必要があるため、これは実際の使用例です。res/raw に入れるにはデータが多すぎます (試してみましたが、うまくいきませんでした)。

私も追加しようとしました:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

SDカードを読みたいだけなのに、マニフェストに追加しましたが、役に立ちませんでした。ストレージを読み取るためのアクセス許可の種類が見つかりません。

おそらくこれを行う正しい方法がありますが、私はそれを見つけることができませんでした。どんなヒントも役に立ちます。

4

1 に答える 1

1

したがって、この質問を書くのに30分を費やした後、電話を取り外し、ドライブとしてマウントせずに接続しました。

これが問題でした。今では動作します。

お時間を無駄にして申し訳ありません。:/

于 2010-05-04T14:05:20.923 に答える