小编DMO*_*DMO的帖子

如何查找 Android API 30 设备上是否存在电子邮件应用程序?

我的应用程序需要检查电子邮件应用程序是否存在,以便我们可以隐藏用于发送电子邮件的按钮。

在 API 30 上,Android 对包管理器进行了更改,因此我们无法再访问活动,除非它们已在标签中声明<queries>

我在 AndroidManifest 文件上设置了查询节点,如下所示

 <queries>
        <intent>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.APP_EMAIL" />
        </intent>
    </queries>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用意图进行查询时,包管理器上的方法返回零项。

 fun isEmailAppInstalled(context: Context): Boolean {
        val intent = Intent(Intent.ACTION_MAIN)
        intent.addCategory(Intent.CATEGORY_APP_EMAIL)
        return context.packageManager.queryIntentActivities(intent, 0).isNotEmpty()
 }
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
2
解决办法
2074
查看次数

标签 统计

android ×1