首页 > 解决方案 > 在 Android TV 显示器上共享 URI/文本 打开蓝牙对话框

问题描述

我想与我的 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"))
    }

onImageUploadedSuccessfully()为了共享URI,我什至更改为以下方法。

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按钮,但没有任何反应。每当我的上传成功时,此对话框就会一次又一次地显示。因此,我无法分享任何东西。

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

在此处输入图像描述

标签: androidkotlinandroid-tvandroid-sharing

解决方案


根据您要与其他应用程序共享的 URI 类型,您可能必须搜索其开发人员的站点,因为应用程序应该具有从外部应用程序接受数据的意图过滤器。

让我们为您的应用程序提供相同的场景,如果您将应用程序开发为不接收来自应用程序外部的任何数据

Intent.createChooser 

永远不会在共享选项中显示您的应用。

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


推荐阅读