Tv Input Framework (TIF) documentaition说:
只有系统电视输入才有资格接收
InputEvents
,并且只有他们拥有RECEIVE_INPUT_EVENT
系统权限。 TV Input负责确定要使用哪个InputEvent
,并允许TV App处理它不需要消耗的密钥。
此RECEIVE_INPUT_EVENT
似乎是系统权限。
尝试通过adb
启用它失败:
$ adb shell pm grant com.example.mytvinput \
com.android.tv.permission.RECEIVE_INPUT_EVENT
Operation not allowed: java.lang.SecurityException: Permission
com.android.tv.permission.RECEIVE_INPUT_EVENT is not a changeable permission type
Android Open Source Project (AOSP) sources表示RECEIVE_INPUT_EVENT
权限为signatureOrSystem
类型,后者又由Android Permission documentation定义为:
系统仅授予Android系统映像中的应用程序或使用与声明权限的应用程序使用相同证书签名的权限。
如何开发消费输入的Android Tv输入服务的叠加层(例如HbbTv)?
我是否必须将开发的Tv输入编译成android图像才能开发它?
答案 0 :(得分:1)
您应该在/system/priv-app
。
/system/priv-app
是一个特殊的地方。
要启动具有可写系统分区的仿真器,应使用-writable-system
标志。
./emulator -writable-system -avd Oreo_Android_TV_1080p_API_26
下一步使用
重新安装/system
分区
adb root
adb remount
接下来将您的应用程序移至/system/priv-app
并重新启动
adb shell mv /data/app/com.example.myinput /system/priv-app/com.example.myinput
Android Emulator Command Line doc, explaining -writable-service flag
What is the difference between system apps and privileged apps on Android?