画像を含むフォルダーを検索し、その特定のフォルダーの画像を表示する単純なギャラリー アプリを開発しています。最初に使用してEnvironment.getExternalStorageDirectory()
から、画像を含むフォルダーを再帰的に検索します。シミュレーターとデバイスは正常に動作しています。クライアントが Nexus 4 にアプリをインストールしたときに、何も読み込まれません。Nexus シリーズには外部 SD スロットがないという投稿をいくつか見ました。私はデバッグ用の Nexus 4 を持っておらず、クライアントも非技術的です。自分でトラブルシューティングを行い、問題の原因を突き止めることができます。この点で誰か助けてもらえますか? Environment.getExternalStorageDirectory()
問題は、Nexus には当てはまらない通話にあると思います。この問題にどのように取り組むことができるか考えていますか? これが私が使用している抜粋されたコードです:
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File cacheDir = null;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
cacheDir=new File(android.os.Environment.getExternalStorageDirectory().getAbsolutePath(), "MyImages");
}
else {
cacheDir = getCacheDir();
}
if(!cacheDir.exists()) {
cacheDir.mkdir();
}
// File storageDir = Environment.getExternalStoragePublicDirectory(
// Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
cacheDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
mCurrentPhotoPath = "" + image.getAbsolutePath();
return image;
}
public void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
ex.printStackTrace();
}
// Continue only if the File was successfully created
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
そして、ここにマニフェストを追加した権限:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
ありがとう!