如何获得谷歌照片或拒绝的权限

时间:2017-12-30 13:17:11

标签: android permissions android-6.0-marshmallow

我将RecyclerView与图库中的图片一起使用。

在我的适配器中:

public void onBindViewHolder:
------
  bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), uriImg);
imageView.setImageBitmap(bitmap );
----

在应用程序中我为项目选择pictire并保存URI:

  Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
                photoPickerIntent.setType("image/*");

使用Galery选择图片时,RecyclerView会在项目中显示此图片。但是当图片选择照片(谷歌照片)时,我得到SecurityException。

如何获得谷歌照片的许可或如何拒绝选择谷歌照片?

enter image description here

来自Galery的

URI:content:// media / external / images / media / 34 GOOGLE PHOTO的URI:content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F34/ACTUAL/1186708631

我的例外:

01-03 09:53:57.612 4762-4762/info.upump.wardrobe3 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                    Process: info.upump.wardrobe3, PID: 4762
                                                                    java.lang.SecurityException: Permission Denial: opening provider com.google.android.apps.photos.contentprovider.MediaContentProvider from ProcessRecord{db51992 4762:info.upump.wardrobe3/u0a78} (pid=4762, uid=10078) that is not exported from uid 10045
                                                                        at android.os.Parcel.readException(Parcel.java:1599)
                                                                        at android.os.Parcel.readException(Parcel.java:1552)
                                                                        at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3550)
                                                                        at android.app.ActivityThread.acquireProvider(ActivityThread.java:4778)
                                                                        at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2018)
                                                                        at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1468)
                                                                        at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1088)
                                                                        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
                                                                        at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
                                                                        at android.provider.MediaStore$Images$Media.getBitmap(MediaStore.java:866)
                                                                        at info.upump.wardrobe3.adapter.SubItemAdapter.createMask(SubItemAdapter.java:133) // this link to "bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), uriImg);"
                                                                        at info.upump.wardrobe3.adapter.SubItemAdapter.onBindViewHolder(SubItemAdapter.java:66)
                                                                        at info.upump.wardrobe3.adapter.SubItemAdapter.onBindViewHolder(SubItemAdapter.java:42)
                                                                        at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6400)
                                                                        at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6433)
                                                                        at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5377)
                                                                        at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5640)
                                                                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5482)
                                                                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5478)
                                                                        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2215)
                                                                        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1542)
                                                                        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1502)
                                                                        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:595)
                                                                        at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3625)
                                                                        at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3067)
                                                                        at android.view.View.measure(View.java:18788)
                                                                        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
                                                                        at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
                                                                        at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
                                                                        at android.view.View.measure(View.java:18788)
                                                                        at android.support.constraint.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:934)
                                                                        at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:973)
                                                                        at android.view.View.measure(View.java:18788)
                                                                        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                        at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:713)
                                                                        at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:90)
                                                                        at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1389)
                                                                        at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:783)
                                                                        at android.view.View.measure(View.java:18788)
                                                                        at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1080)
                                                                        at android.view.View.measure(View.java:18788)
                                                                        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                                        at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
                                                                        at android.view.View.measure(View.java:18788)
                                                                        at android.view.ViewGroup.mea

我得到的图片:

 Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
                photoPickerIntent.setType("image/*");

                getActivity().startActivityForResult(photoPickerIntent, SubFragment.CHOOSE_PHOTO_RESULT);

下:

    onActivityResult(int requestCode, int resultCode, Intent data) {
      uri = data.getData();
//    next I write this URI in DB
    }

在适配器中我从DB

获得了uriImg

0 个答案:

没有答案