2016-06-30 7 views
-2

私は現在自分のアプリのユーザープロフィールを作成しています。最近まで、私はサムスン銀河ノート4についてテストしてきましたが、これは私に以下のコードで何の問題も与えていません。その後のテストでは、Nexus 5xを手にしました。下のコードを使用してユーザープロフィールの画像を選択すると、「残念ながら写真が停止しました」というエラーが表示されます。私は写真をデバッグすることができないので、エラーログはありません。写真を撮り、作物機能を使用しようとすると「残念ながら写真が停止しました」

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch(requestCode) { 
     case 0: 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = data.getData(); 
       cropImage(selectedImage); 
      } 

      break; 
     case 1: 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = data.getData(); 
       cropImage(selectedImage); 
      } 
      break; 
     case 2: 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = data.getData(); 
       profileImage.setImageURI(selectedImage); 
       try { 
        userProfileImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage); 
        AlmightyFunctions.ImageService.saveProfileImage(user,userProfileImage); 
       } 
       catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      break; 
    } 
} 

public void showImageSelectDialog() { 
    CharSequence options[] = new CharSequence[] { 
      getString(R.string.select_camera), 
      getString(R.string.select_gallery) 
    }; 

    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle(getString(R.string.select_image_dialog)); 
    builder.setItems(options, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      MarshMallowPermission mmp = new MarshMallowPermission(UserProfileActivity.this); 
      switch(which) { 
       case 0: 
        if (!mmp.checkPermissionForCamera()) { 
         mmp.requestPermissionForCamera(); 
        } 
        Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
        startActivityForResult(takePicture, 0); 
        break; 
       case 1: 
        if (!mmp.checkPermissionForExternalStorage()) { 
         mmp.requestPermissionForExternalStorage(); 
        } 
        Intent pickPhoto = new Intent(Intent.ACTION_PICK, 
          android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
        startActivityForResult(pickPhoto, 1); 
        break; 
      } 
     } 
    }); 
    builder.show(); 
} 

public void cropImage(Uri photoUri) { 
    Intent intent = new Intent("com.android.camera.action.CROP"); 
    intent.setDataAndType(photoUri, "image/*"); // this will open all images in the Gallery 
    intent.putExtra("crop", "true"); 
    intent.putExtra("aspectX", 1); // this defines the aspect ration 
    intent.putExtra("aspectY", 1); 
    intent.putExtra("return-data", true); // true to return a Bitmap, false to directly save the cropped iamge 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); //save output image in uri 
    startActivityForResult(intent,2); 
} 

ご協力いただければ幸いです。

答えて

関連する問題