2

カメラアプリにインテントを送信して写真を撮るアプリを作成します。

if (storageState.equals(Environment.MEDIA_MOUNTED)) {

        try {
            String name=  "pic"+new Date().getTime();
            File photoFile = File.createTempFile(name, ".jpg");
            Log.i(TAG, "created file:"+name+".jpg");
            mImageUri = Uri.fromFile(photoFile);
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
            startActivityForResult(takePictureIntent, ActionCode.TAKE_PHOTO);

        } catch (IOException e) {
            Log.e(TAG, "Could not create file. ", e);
     }

}

写真を撮って「チェック」OKボタンを押すと。それは私のアプリに結果を送信しません。

logcatでこのエラーを見つけました。

07-22 17:56:30.289: E/iu.UploadsManager(5699): upload failed for ID=11 content_uri=content://media/external/images/media/5117 state=1 bytes_total=0,0%
07-22 17:56:30.289: E/iu.UploadsManager(5699): java.lang.IllegalArgumentException: Zero length file can't be uploaded
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.GDataUploader.upload(GDataUploader.java:95)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.UploadsManager.doUpload(UploadsManager.java:819)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.UploadsManager.access$1200(UploadsManager.java:54)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.UploadsManager$UploadTask.performSyncInternal(UploadsManager.java:1390)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.UploadsManager$AutoUploadTask.performSyncInternal(UploadsManager.java:1874)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.UploadsManager$UploadTask.performSync(UploadsManager.java:1309)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.InstantUploadSyncManager.performSyncInternal(InstantUploadSyncManager.java:545)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.InstantUploadSyncManager.performSync(InstantUploadSyncManager.java:591)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at com.google.android.apps.plus.iu.InstantUploadSyncService$InstantUploadSyncAdapter.onPerformSync(InstantUploadSyncService.java:180)
07-22 17:56:30.289: E/iu.UploadsManager(5699):  at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:254)
4

4 に答える 4

1

参考までに(私はたまたまそれらを開いています)、ここに関連するものをいくつか示します。

ほとんどの場合、原因は画像ファイルの保存の問題、または .xml の間違いですonActivityResult

于 2014-01-21T21:47:28.093 に答える
0

コードの問題は、無効なファイル名を作成していることです。

String name=  "pic"+new Date().getTime();

名前に無効な名前を持つファイルを作成し、:カメラは画像を保存して返すことができません。

于 2012-07-28T20:09:22.207 に答える
-1

以下のコードを参照してください

    path = Environment.getExternalStorageDirectory() + "/"
            + filename;

    btnTakePhoto.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            File file = new File(path);
            Uri outputFileUri = Uri.fromFile(file);

            Intent intent = new Intent(
                    android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

            startActivityForResult(intent, TAKE_PICTURE);

        }
    });

その後

public void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK && requestCode == TAKE_PICTURE) {

        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 3;

        bitmap = BitmapFactory.decodeFile(path, options);
        // Fetch the image from give path.

        imageView.setImageBitmap(bitmap);

    }
 }
于 2012-07-23T04:50:17.253 に答える