我正在尝试从我的应用程序中打开 Gmail(单击按钮)。我只在 android 11 中遇到问题。它没有打开 Gmail。在这种情况下,queryIntentActivities 返回空列表。
请帮助我如何解决 android 11 的这个问题。
下面是我正在使用的代码..
val pkgManager = aContext.packageManager
val packages = pkgManager.queryIntentActivities(intent, 0)
if (!packages.isEmpty()) {
for (resolveInfo in packages) {
val packageName = resolveInfo.activityInfo.packageName
aEmailClientNames.add(resolveInfo.loadLabel(aContext.packageManager).toString())
aEmailClientIcons.add(resolveInfo.loadIcon(aContext.packageManager))
aEmailClientPackageNames.add(packageName)
}
最佳答案
packageManager.queryIntentActivities(intent, 0)
will return EMPTY list if your app is running ontargetSdkVersion 30
to resolved this issue you have to use<queries>
in menifest asqueryIntentActivities()
, are filtered based on the calling app's declaration.
修复图像捕获 + 图像上传以使用 Android“范围存储”
该问题可能与新的包可见性 (https://developer.android.com/about/versions/11/privacy/package-visibility) 有关。
在所有更新(至少 Android Studio 4.1)之后,尝试在您的 list 中添加显示应用程序需要执行的操作。
在我的情况下,添加时问题消失了。
图像捕捉 用于相机,获取内容对于 GALLERY(如果需要视频,获取文件更改 mimeType),选择 对于 GALLERY(如果你想要视频,应该改变 mimetype)
选择 对于 GALLERY(如果有人有其他图像浏览器)
您还可以在 logcat 中检查您必须添加哪些查询(应该包含“BLOCKED”或“no permission”。
错误是因为
ImagePickerModule
当您没有 resolveActivity
的 Intent 权限时返回 null
(您可以评论它以检查 startActivityForResult
中更好的错误)添加
<query>
在 AndroidMenifest.xml
<manifest>
.....
.....
<queries>
<!-- Browser -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http" />
</intent>
<!-- Camera -->
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
<!-- Gallery -->
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:mimeType="image/*" />
</intent>
<intent>
<action android:name="android.intent.action.PICK" />
<data android:mimeType="image/*" />
</intent>
<intent>
<action android:name="android.intent.action.CHOOSER" />
</intent>
<!--For external application-->
<package android:name="com.whatsapp" />
</queries>
.....
.....
</manifest>
关于android - queryIntentActivities 在 android 11 中返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65629268/