簡體   English   中英

無法在 AVD(API 級別 31)上調用意圖(camera.action.CROP),沒有任何異常消息

[英]failed to call intent (camera.action.CROP) on AVD(API Level 31) without any exception msg

我的代碼如下。

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setType("image/*");
intent.setData(mImageCaptureUri);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
     grantUriPermission(getPackageName(),mImageCaptureUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);
     grantUriPermission(getPackageName(),mImageCropUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);
     intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
    intent.putExtra("outputX", 480);
    intent.putExtra("outputY", 480);
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);

    intent.putExtra("scale", true);
    intent.putExtra("scaleUpIfNeeded", true);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCropUri);

              intent.putExtra("crop", "true");
              intent.putExtra("return-data", false);
              intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
              intent.putExtra("noFaceDetection", true);

try {
      startActivityForResult(intent, CROP_FROM_CAMERA);
    }
    catch (Exception e) {
                e.printStackTrace();
    }
  1. 測試環境為AVD(API Level 31)。 它應該有一個默認的裁剪應用程序,谷歌照片。 我關於拍照的代碼工作正常。

  2. 運行我的應用程序時,我從下載文件夾中下載 select a.jpg 文件,然后調用 intent camera.action.CROP)。 但是代碼根本不生效。

  3. 我檢查了logcat中的兩個uri,

mImageCaptureUri = content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F71/ORIGINAL/NONE/image%2Fpng/1987893059

mImageCropUri = content://com.myapp.fileprovider/my_pic/Pictures/tmp_kuilimar_16712596169354514375851720661420.jpg

此外,我無法使用 e.printStackTrace() 在 LogCat 中獲取任何異常消息。

那么,怎么了? ...... 謝謝大家。

Android 沒有CROP Intent

它應該有一個默認的裁剪應用程序,谷歌照片

不需要任何設備,更不用說任何設備的任何用戶,都可以擁有支持您未記錄和不受支持的Intent操作的應用程序。 並且不需要 Google Photo 或任何其他特定應用程序支持該未記錄且不受支持的Intent操作。

許多適用於 Android 的圖像裁剪庫 請使用一個。

我發現問題是由 grantUriPermission() 引起的。 我們應該向 Google Photo 授予 Uri 權限,這將執行 CROP,而不是應用程序本身。 謝謝你們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM