解決Android TV版APP在真機上無法安裝的問題
阿新 • • 發佈:2018-12-21
最近接了個與TV開發相關的專案,採用AS自動生成的專案在模擬器上執行沒問題,但是在電視真機上就是安裝不上,跑不起來,我這還沒有電視測試,測試還要去找朋友借裝置,有點鬱悶。
AS自動生成的manifest檔案如下
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:banner ="@drawable/app_icon_your_company"
android:theme="@style/Theme.Leanback">
<activity
android:name=".MainActivity"
android:icon="@drawable/app_icon_your_company"
android:label="@string/app_name"
android:logo="@drawable/app_icon_your_company"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity >
</application>
與我們平常看到的專案不同的是category 的值LEANBACK_LAUNCHER,這是官方對TV啟動的配置引數,用google的模擬器啟動只要你配置了banner,在桌面上就能正常顯示圖示和開啟;但是在國內的各大TV真機上還是又找不到圖示無法開啟的問題。為了解決這個問題我是全網搜尋,但是網上TV開發的案例不多,而且都是和AS自動生成的程式碼類似,估計都是在Google的模擬器上測試的結果。無果,只能去sdk裡面看官方文件了,我這沒等級的英文水平居然找到了自己想要的答案。所以正確的manifest應該是下面的
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:banner="@drawable/app_icon_your_company"
android:theme="@style/Theme.Leanback">
<activity
android:name=".MainActivity"
android:icon="@drawable/app_icon_your_company"
android:label="@string/app_name"
android:logo="@drawable/app_icon_your_company"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
區別就是一行配置:
<category android:name="android.intent.category.LAUNCHER" />
也就是得用我們傳統得啟動配置。
學習正確的姿勢還是得去看官方文件:…sdk/docs/training/tv/start/start.html#dev-project