在 WhatsApp 上共享数据不适用于 android 11

Vis*_*tel 4 android image android-intent

在 API 30 上升级我的项目后,由于Android 11 中的包可见性,我检查了通过 Intent 进行的 WhatsApp 数据共享可能在 android 11 设备上不起作用

 val imgBitmapPath = MediaStore.Images.Media.insertImage(mContext.contentResolver, bitmap, "eVitalRx_Greetings_" + Calendar.getInstance().getTime(), null)
    val imgUri = Uri.parse(imgBitmapPath)
    val whatsappIntent = Intent(Intent.ACTION_SEND)
    if (appInstalledOrNot(mContext, "com.whatsapp")) {
        whatsappIntent.setPackage("com.whatsapp")
    } else {
        whatsappIntent.setPackage("com.whatsapp.w4b")
    }
    whatsappIntent.putExtra(Intent.EXTRA_TEXT, msg)
    whatsappIntent.putExtra(Intent.EXTRA_STREAM, imgUri)
    whatsappIntent.type = "image/jpeg"
    whatsappIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
    try {
        mContext.startActivity(whatsappIntent)
    } catch (ex: ActivityNotFoundException) {
        Toast.makeText(mContext, "Whatsapp not installed", Toast.LENGTH_LONG).show()
    }
Run Code Online (Sandbox Code Playgroud)

"Whatsapp not installed"在 android 11 设备中显示消息。

有没有人对此有解决方案?

Vis*_*tel 6

最后,我通过花时间查看原始文档和其他一些链接得到了答案。

如果您想与其他应用程序进行任何类型的交互,您必须将包的名称添加到清单文件中。

 <queries>
       
        <package android:name="com.whatsapp" />
        <package android:name="com.whatsapp.w4b" />
       
 </queries>
Run Code Online (Sandbox Code Playgroud)

  • 从 Whatsapp 收到错误“不支持该文件格式” (3认同)