内置Google TV Services(GTVS)
Google TV Services(GTVS)是Google服务的集合,例如YouTube和Google Play,它们不属于Android平台或Android开源项目。根据Android TV许可协议,只有签约的谷歌合作伙伴的才可以合法使用。
将GTVS集成到SDK中:
- 从谷歌官网合作伙伴页面下载最新的GTVS软件包。
- 解压缩GTVS包到 /vendor/google/
解压出来的目录如下:
vendor/google/ -- Android.mk -- apps/ -- libs/ -- products/ -- etc/
- 然后再对应的设备mk编译文件中添加编译选项(例如device/amlogic/905x2/905x2.mk):
$(call inherit-product, vendor/google/products/gms.mk)
- 将客户ID(由Google提供)添加到您的设备制作文件中:
PRODUCT_PROPERTY_OVERRIDES += \ ro.com.google.clientidbase=android-acme
- 在8.0 跟8.1 的系统上面,还需要:创建一个IDC文件 /system/usr/idc/virtual-remote.idc 用来声明GTVS Android TV Remote应用程序的输入功能。要声明其功能,idc文件必须包含:
device.internal = 0 keyboard.builtIn = 0 keyboard.orientationAware = 0 audio.mic = 1
注意:还需要为设备支持的任何其他启用语音的遥控器添加IDC文件。
使用Google Launcher创建Android开源版本
如果谷歌GTVS是在被限制的国家做认证,开发者依然需要将GTVS 添加到系统中去。并且提交对应的cts gts报告。但是必须根据不同的国家规定,在系统中做出相应的修改:
- 通过在makefile中注释掉电视搜索(Katniss)功能,删除的地方在: vendor/google/apps/Android.mk
#include $(CLEAR_VARS) #LOCAL_MODULE := Katniss #LOCAL_MODULE_TAGS := optional #LOCAL_SRC_FILES := $(LOCAL_MODULE).apk #LOCAL_MODULE_CLASS := APPS #LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) #LOCAL_REQUIRED_MODULES := libgoogle_tagger_molly_jni libvision_face_jni libgoogle_recognizer_jni_l #LOCAL_CERTIFICATE := PRESIGNED #LOCAL_PRIVILEGED_MODULE := true #include $(BUILD_PREBUILT)
- 创建一个接收全局搜索辅助意图的模板应用程序:
-
- 建一个空白的Activity。
- 在activity 的mainfest 中添加:
<intent-filter android:priority="3" > <action android:name="android.intent.action.ASSIST" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>