0

Androidカメラを使用して写真を撮り、電話のギャラリーに保存するように指示しています。パスをめちゃくちゃにしたと思いますが、エラーを見つけることができないようです。誰かが私を助けることができますか?私はアンドロイドで非常に初心者です。

カメラを呼び出すコード

   Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                  String uriToFileInExternalStorage = null;
                    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriToFileInExternalStorage);
                    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

写真を処理し、ギャラリーに移動するように指示するコード。

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == CAMERA_PIC_REQUEST) {
                //check if camera has taken picture by checking request code

                Toast.makeText(MainActivity.this, "Photo Captured", Toast.LENGTH_SHORT).show();


                Uri mPath=data.getData();
                 Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

                    mediaScanIntent.setData(mPath);
                    this.sendBroadcast(mediaScanIntent);

            }
        }
4

3 に答える 3

2

ここにあるコードを試してください:写真をギャラリーに追加する

Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(mCurrentPhotoPath);
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);

サンプルの PhotoIntentActivityをダウンロードして、値を取得する方法を読んで理解することをお勧めしますmCurrentPhotoPath

于 2013-10-24T06:13:13.503 に答える
0

これに値を設定する必要がありますuriToFileInExternalStorage

サンプルコード:

fileName = "image_" + String.valueOf(numImages) + ".jpg";

File output = new File(direct + File.separator + fileName); // create
                                                                    // output
while (output.exists()) { // while the file exists
    numImages++; // increment number of images
    fileName = "image_" + String.valueOf(numImages) + ".jpg";
    output = new File(outputFolder, fileName);
}

uriToFileInExternalStorage = Uri.fromFile(output); 
于 2013-10-24T06:13:17.423 に答える