android - 在 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
按钮,但没有任何反应。每当我的上传成功时,此对话框就会一次又一次地显示。因此,我无法分享任何东西。
知道电视应用程序上的分享是否与移动应用程序不同吗?
解决方案
根据您要与其他应用程序共享的 URI 类型,您可能必须搜索其开发人员的站点,因为应用程序应该具有从外部应用程序接受数据的意图过滤器。
让我们为您的应用程序提供相同的场景,如果您将应用程序开发为不接收来自应用程序外部的任何数据
Intent.createChooser
永远不会在共享选项中显示您的应用。
https://developer.android.com/guide/components/intents-filters.html
推荐阅读
- python - 架构 x86_64 的未定义符号:“_PyUnicode_Type”,引用自:when using python_boost
- python - 请解释第 3 行如果我采取浮动它不起作用为什么
- laravel - 如何使用 Laravel 动态关系?
- c++ - 通过 Lua 包装器访问 C++ 类状态会产生垃圾值
- java - 为什么“mvn test”会编译测试类但只运行其中的一部分?
- mysql - 使用 MariaDB 中两个表中的数据创建计算列
- filter - 为什么在迭代器上使用过滤器时会得到不同的参数类型?
- ios - 快速录屏或拍照时,某些项目被阻止
- r - 如何在使用 sjPlot 创建的图中反转图例顺序
- list - 比起 car 和 cdr 更喜欢 first and rest 的 lisps 如何处理像 cdaddr 这样的组合?