Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android 11 kotlin中的包可见性_Android_Kotlin_Android Intent_Android Manifest_Android 11 - Fatal编程技术网

android 11 kotlin中的包可见性

android 11 kotlin中的包可见性,android,kotlin,android-intent,android-manifest,android-11,Android,Kotlin,Android Intent,Android Manifest,Android 11,我想找到安装在设备上的电子邮件客户端,并在该应用程序上重定向电子邮件id以发送电子邮件。它在安卓10上运行良好,但在安卓11上不工作。我找到了一篇关于。我不明白如何在android 11中实现此代码功能 request?.url.toString().startsWith("mailto:") -> { val intent = Intent(Intent.ACTION_SENDTO) intent.type = "message/

我想找到安装在设备上的电子邮件客户端,并在该应用程序上重定向电子邮件id以发送电子邮件。它在安卓10上运行良好,但在安卓11上不工作。我找到了一篇关于。我不明白如何在android 11中实现此代码功能

request?.url.toString().startsWith("mailto:") -> {
       val intent = Intent(Intent.ACTION_SENDTO)
       intent.type = "message/rfc822"
       intent.data = Uri.parse(request?.url.toString())
        view?.context?.packageManager?.let { packageManager ->
        if (packageManager.resolveActivity(intent, 0) != null) {
            view.context?.startActivity(intent)
        } else {
          Log.E("Error to find ", "Email client")
        }
     }
}

它在低于android 10的版本上启动电子邮件客户端,但在android 11中找不到电子邮件客户端。查找电子邮件客户端时总是显示错误。有人能更详细地向我解释一下安卓11上的包可见性过滤是如何工作的,有人能分享一些代码来实现这一点吗。

因为你的应用程序针对安卓11或更高版本,需要与自动可见的应用程序以外的应用程序交互,在应用程序的清单文件中添加查询元素。在元素中,按包名、意图签名或提供者权限指定其他应用程序

要查看其他软件包,请使用元素声明您的应用程序需要增加软件包可见性

<manifest...>
     <queries>
        <intent>
            <action android:name="android.intent.action.SEND" />
            <data android:mimeType="image/jpeg" />
        </intent>
    </queries>
    <application>
    </application>
</manifest>


有关更多信息,请参阅:

此答案应被接受,但应避免查询所有程序包。