我在一个小部件中使用remoteView.setImageViewUri()
方法显示SD卡中的图片。这种方法在Marshmallow以外的版本中都能正常工作:
错误信息为:
Unable to open content: file:///storage/emulated/0/Android/data/applicaitonPackage/files/file.png
open failed: EACCESS (Permission denied)
很明显这是一个权限问题,但我不知道如何授予小部件容器权限,在理论上(见注1),图片已经存储在共享存储中。
注1:图像存储的目录是Environment.getExternalStorageDirectory()
下的共享存储。
注2:应用程序未适配MarshMallow并使用targetSdkVersion = 15
注3:请不要只回复解释MarshMallow中的新运行时权限。我已经知道权限更改并且这不是问题,因为应用程序针对SDK版本15,并且该应用程序没有任何访问外部存储的问题,问题出在小部件容器上,我怀疑它没有权限。