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"