ホーム>source

Google Playでアプリを更新すると、

You opted-in to Android TV but your APK or Android App Bundle does not have the Leanback intent

これは、TVをサポートするために必要なすべてのコンポーネントがマニフェストに含まれているため、やや奇妙です。

<uses-feature
    android:name="android.software.leanback"
    android:required="false" />
<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />

そして

   <activity
        android:name=".MainActivity"
        android:configChanges="orientation"
        android:launchMode="singleTop"
        android:screenOrientation="behind"
        android:theme="@style/AppTheme.Splash">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
    </activity>

そして

<application
    android:banner="@drawable/tv_banner"

(テレビとモバイルでアクティビティを共有していることに注意してください)

次のgradleモジュールも含まれています。

implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support:leanback-v17:27.1.1'

アプリはテレビデバイスでも動作します:)

確かに、私たちはアプリとマニフェストの構造が大きく変わったため、大きなリファクタリングを行いました。ただし、Android開発ドキュメントの要件と矛盾するものは見当たりません。

https://developer.android.com/training/tv/start/start

誰もこれを経験しましたか?あるいは、行方不明/不正な明らかな何かを誰でも見ることができますか?

あなたの答え
  • 解決した方法 # 1

    ついに答えを見つけました!

    AndroidTVをサポートする場合、マニフェスト内で方向をロックできません。

    android:screenOrientation="landscape"
    android:screenOrientation="portrait"
    
    

    代わりに、ActivityのonCreate内で以下のコード(または同様のもの)を使用できます。

    requestedOrientation =
            if (isPhoneDevice()) ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
            else ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
    
    

    マニフェストにロックの向きのロジックがない場合、おそらくいくつかのlibがそれを追加します。 apkツールを使用してapkを逆コンパイルし、生成されたマニフェストを確認します。次のコードで置き換えることができます。

    <activity
                android:name="com.yoursite.SampleActivity"
                tools:replace="android:screenOrientation"
                tools:node="merge"
                android:screenOrientation="sensor"/>
    
    

    私はそれが役立つことを願っています:)

    編集: 別の問題が見つかりました。

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    
    

    Android TVではACCESS_WIFI_STATE権限を使用できません。

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ xmlhttprequest - ライブサーバー上のXMLHttpRequesのJavascript変数が何にもリセットされない