在MarshMallow的Widget中显示来自SDCard的图像

luj*_*jop 16 android android-widget android-6.0-marshmallow

在小部件中,我使用SDCard显示图像remoteView.setImageViewUri().除MarshMallow外,此策略正常工作:

错误是:

Unable to open content:  file:///storage/emulated/0/Android/data/applicaitonPackage/files/file.png
open failed: EACCESS (Permission denied)
Run Code Online (Sandbox Code Playgroud)

很明显这是一个权限问题,但我不知道如何赋予窗口小部件容器权限,理论上(参见注释1)图像已经存储在共享存储中.

注1:存储图像的目录是共享存储Environment.getExternalStorageDirectory()

注2:应用程序不适用于MarshMallow并使用targetSdkVersion = 15

注3:不要只回复有关MarshMallow中新的运行时权限的说明.我已经知道权限更改,这不是问题,因为应用程序是针对SDKVersion 15而且应用程序访问外部存储没有任何问题,问题是我自己怀疑没有的小部件容器权限.

Bui*_*Huy 0

您的清单文件中有此权限吗?

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)