在 Android 台电视显示器上分享 URI/Text 打开蓝牙对话框

Share URI/Text on Android TV displays Turn on Bluetooth Dialog

我想在我的 Android TV 应用程序中与其他应用程序共享图像。我在用户单击按钮时上传图像,我想分享它的 URL(作为文本)或 URI。所以,这是我的代码:

val bitmap = ......
btnAccept.setOnClickListener {
            val userId = Storage.getInstance(playerView.context).getUserId()
            vm.storeImageInDatabase(userId, bitmap, ::onImageUploadedSuccessfully)
        }

private fun onImageUploadedSuccessfully(url: String) {
        val sendIntent: Intent = Intent().apply {
            action = Intent.ACTION_SEND
            putExtra(Intent.EXTRA_TEXT, url)
            type = "text/plain"
        }
        startActivity(Intent.createChooser(sendIntent, "Share"))
    }

为了分享URI,我什至把onImageUploadedSuccessfully()改成了下面的方法。

private fun onImageUploadedSuccessfully(url: String) {
        val sendIntent: Intent = Intent().apply {
            action = Intent.ACTION_SEND
            putExtra(Intent.EXTRA_STREAM, Uri.parse(url))
            type = "image/jpg"
        }
        startActivity(Intent.createChooser(sendIntent, "Share"))
    }

但是,结果是一样的。以下对话框显示并要求我启用蓝牙。我点击 TURN ON 按钮但没有任何反应。每当我上传成功时,此对话框会一次又一次地显示。因此,我无法分享任何东西。

知道在电视应用上分享与在移动应用上分享是否不同吗?

根据您想要与其他应用共享的 URI 类型,您可能必须搜索他们的开发者网站,前提是应用程序应该具有接受来自外部应用程序的数据的 Intent 过滤器。

如果您将应用程序开发为不从应用程序外部接收任何数据,那么让我们为您的应用程序设置相同的场景

Intent.createChooser 

绝不会在分享选项中显示您的应用。

https://developer.android.com/guide/components/intents-filters.html