小编Chr*_*lla的帖子

是否有 API 或 SDK 可以在 SmartPhone for Android TV 上创建远程控制应用程序

我的任务是为 android mobile 创建一个应用程序来控制 Android TV,最好是任何应用程序之外的仪表板/登陆页面(包括设置)。是通过蓝牙还是 wifi 并不重要,尽管我发现蓝牙是不可能的,因为需要 HID 配置文件,并且该配置文件仅在 API 28 上可用(我需要从 API 19 开始支持)

Play 商店中有一些应用程序已经具有此功能。大多数通过 Wifi 连接到 Android TV,也与它配对。

通过分析 APK 文件,我发现了一些选项,即

  • 有些使用 connectSDK

  • 其他人使用的似乎是我似乎找不到的本地 google 包

    import com.google.android.tv.support.remote.Discovery;
    import com.google.android.tv.support.remote.core.Client;
    import com.google.android.tv.remote.BuildInfo;
    
    Run Code Online (Sandbox Code Playgroud)

我发现几年前也可以使用 Anymote 协议,但该协议仅适用于 Google TV,不适用于 Android TV。

我现在面临的问题是connectSDK库没有得到维护并且不包含任何用于 Android TV 连接的代码。本地 google 包在任何地方都找不到,不确定它是否包含在特定的 Jar 文件中,或者可能是一些模糊/隐藏的依赖项?

我可以尝试使用 Android TV 创建到特定套接字的连接,例如,我知道ServiceTypeis"_androidtvremote._tcp."并且端口号是6466。但我不确定实现这一点的最佳方法是什么。

我正在寻找的是我如何解决这个问题的一些指示或想法。也许也有一些参考。

android remote-control

6
推荐指数
2
解决办法
3867
查看次数

Kotlin Room withRepository 中的 Transaction 或 Dao 中的 @Transaction

我有一个关于 Room 和 it\xe2\x80\x99swithTransaction { }代码块与 Koin 结合的问题。

\n

我有一个存储库,需要同时访问几个 DAO。我想使用 a,withTransaction { }这样我就不会\xe2\x80\x99t 使 1 DAO 与其他 DAO 的引用变得混乱。\nI\xe2\x80\x99m 不确定要在我的存储库的构造函数中注入哪个对象。这withTransaction{ } 通过获取 RoomDatabase 来访问。但是,在我的存储库中拥有 RoomDatabase 意味着我可以访问连接到该 RoomDatabase 的所有 DAO。我\xe2\x80\x99m 不确定围绕此用例的最佳实践是什么。

\n

我应该使用withTransaction { }存储库中所有 DAO 都可访问的风险,还是应该将 DAO 放在存储库的构造函数中并将它们交给“ReviewDao”来处理每个插入?

\n

一个例子是这样的withTransaction { }

\n
class ReviewRepository(\n    private val roomDatabase: RoomDatabase\n) {\n    private val reviewDao = roomDatabase.reviewDao()\n    private val userDao = roomDatabase.userDao()\n\n    suspend fun saveReview(reviewResponse: ReviewResponse) {\n        roomDatabase.withTransaction {\n            reviewDao.insert(reviewResponse.getAsEntity())\n            userDao.insert(reviewResponse.user.getAsEntity())\n        }\n    }\n}\n …
Run Code Online (Sandbox Code Playgroud)

android android-room

2
推荐指数
1
解决办法
3395
查看次数

标签 统计

android ×2

android-room ×1

remote-control ×1