0

私のアプリでは、キャプチャしたカメラ画像へのパスをハードコーディングしました。ただし、これはすべてのデバイスで機能するわけではありません。これは、イメージのストレージ パスがデバイスによって異なるためです。すべてのデバイスで有効なこのパスを動的に取得する方法はありますか?

これは私が試したことです:

    if (externalStorageState.equals(Environment.MEDIA_MOUNTED)

        || externalStorageState.equals(Environment.MEDIA_UNMOUNTED)

        || externalStorageState
                .equals(Environment.MEDIA_MOUNTED_READ_ONLY)) {


    File path = Environment
            .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM

                    + "/Camera");//////////----path of captured images

    Log.d("operator", " path: " + path);

    if (path.exists()) {

        if (path.isDirectory()) {

            fo = new FileObserver(path.toString(),

                    FileObserver.CLOSE_WRITE) {

                @Override
                public void onEvent(int event, String path) {

                    SimpleDateFormat sdfDateT = new SimpleDateFormat(

                            "yy-MM-dd HH:mm:ss", Locale.US);

                    String st = sdfDateT.format(System

                            .currentTimeMillis());
                    Log.d("operator", "in event");

                    Log.d("operator", "lat: " + lat + " " + "lng: "

                            + lng + " " + "location: " + addre + " " + "time: " + st);

                    ptd.insert(st, String.valueOf(lat), String.valueOf(lng), addre);

                }
            };
4

1 に答える 1

0

getExternalStorageDirectory()APIレベルが7未満の場合に使用し、追加/Picturesしてフォトストレージのパスを取得します。

APIレベルが7を超える場合は、を使用しますgetExternalStoragePublicDirectory (DIRECTORY_PICTURES)また、このリンク
を見ることができます。

于 2012-04-30T09:48:39.773 に答える