Android: разрешение не работает и значок не хочет отображаться

У меня есть приложение, которое должно работать на Android TV, поэтому прежде чем размещать его в App Store, я хотел протестировать его на своем собственном Android TV.

Но когда я устанавливаю его, у меня есть 3 проблемы:

1) Я не знаю почему, но мои разрешения не работают

2) Мое приложение не отображается в меню, его можно найти только в настройках -> приложение

3) Значок является значком Android по умолчанию, а не моим собственным значком

Вот мой манифест:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.package">

<!-- read sd card -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- write sd card -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- internet -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- internet state -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- to disable recent app button -->
<uses-permission android:name="android.permission.REORDER_TASKS" />
<!-- AccountManager -->
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<!-- same -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- don't rember -->
<uses-permission android:name="android.permission.GET_TASKS"/>

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar">
    <activity android:name=".MainActivity"
        android:banner="@drawable/my_logo_temp"
        android:icon="@drawable/my_logo_temp"
        android:label="@string/app_name"
        android:logo="@drawable/my_logo_temp"
        android:screenOrientation="landscape">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
    </activity>

    <service
        android:name=".account.AuthenticatorService"
        android:exported="true"
        android:process=":auth" >
        <intent-filter>
            <action android:name="android.accounts.AccountAuthenticator" />
        </intent-filter>

        <meta-data
            android:name="android.accounts.AccountAuthenticator"
            android:resource="@xml/auth" />
    </service>
</application>



</manifest>

2 ответа

Решение

Вот ответ, надеюсь, это поможет вам.

Случай 3: Удалить баннер и значок из Mainactivity. Он всегда должен быть в теге приложения, поэтому поместите его в тег приложения.

Случай 2: удалить существующую тему и применить android:theme="@style/Theme.Leanback" в теге приложения.

Я всегда предпочитаю писать так много кода, когда начинаю разработку телевизионного приложения.

<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />
<uses-feature
    android:name="android.software.leanback"
    android:required="true" />
<uses-feature
    android:name="android.hardware.faketouch"
    android:required="false" />
<uses-feature
    android:name="android.hardware.telephony"
    android:required="false" />
<uses-feature
    android:name="android.hardware.camera"
    android:required="false" />
<uses-feature
    android:name="android.hardware.nfc"
    android:required="false" />
<uses-feature
    android:name="android.hardware.location.gps"
    android:required="false" />
<uses-feature
    android:name="android.hardware.microphone"
    android:required="false" />
<uses-feature
    android:name="android.hardware.sensor"
    android:required="false" />

<supports-screens
    android:largeScreens="true"
    android:normalScreens="false"
    android:requiresSmallestWidthDp="720"
    android:smallScreens="false"
    android:xlargeScreens="true" />

    <-- Your Permission -->
    <-- You Application Tag -->

Не забудьте добавить зависимость компиляции 'com.android.support:leanback-v17:23.2.1' в ваш файл build.gradle. Я использовал эту зависимость при создании приложения, вы можете изменить версию в соответствии с вашим проектом.

Попробуйте это, может быть, это поможет вам.

Для случая 1: проблема с разрешением будет решена, если выполнить все вышеуказанные действия.

Поместите свой значок с логотипом в mipmap папку и измените следующее:

android:banner="@mipmap/my_logo_temp"
android:icon="@mipmap/my_logo_temp"
android:logo="@mipmap/my_logo_temp"
Другие вопросы по тегам