I have an app on playstore which works fine on android phones. Now I have added support for Android TV as well and my app is approved by google as well. (I checked in play console ). But still I cannot view my app for installation in my TV playstore.
Here is my android manifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.escean.taj777">
<uses-permission android:name="android.permission.INTERNET" />
<!--<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.touchscreen" 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.microphone" android:required="false"/>
<uses-feature android:name="android.software.leanback" android:required="false"/>
<application
android:banner="#drawable/banner"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme"
android:usesCleartextTraffic="true">
<activity android:name="com.escean.taj777.SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.escean.taj777.MainActivity">
<intent-filter>
<action android:name="android.intent.action.ACTION_MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.escean.taj777.UserLanding"></activity>
</application>
</manifest>
Your Leanback launcher intent-filter is wrong. Replace the ".action.ACTION_MAIN" with ".action.MAIN"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
Related
I currently have an app on the Play Store and have created a version for Android Auto.
The Android Auto version works correctly on the DHU (Desktop Head Unit).
To test it on a real device (vehicle), I have created an Internal Test in Play Store, and in it, I have added the original app together with the Android auto bundle.
When I install it from the Play Store, the app does not appear in the list of available for Android Auto.
I suppose it has to do with the configuration of my "manifest" files, but I don't see where the error could be.
Has anyone had the same problem?
--- CODES UPDATED AFTER FIRST ANSWER -----
This is the "manifest" of the Android Auto app.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.recursoseducativos.programameudis_auto">
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="32" />
<application
android:allowBackup="true"
android:appCategory="maps"
android:icon="#mipmap/ic_launcher"
android:label="Prográmame-udis"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/Theme.Prográmameudis" >
<meta-data
android:name="com.google.android.gms.car.application"
android:resource="#xml/automotive_app_desc"/>
<meta-data
android:name="androidx.car.app.minCarApiLevel"
android:value="1"/>
<service
android:name=".programameudisservice"
android:exported="true">
<intent-filter>
<action android:name="androidx.car.app.CarAppService" />
<category android:name="androidx.car.app.category.NAVIGATION"/>
</intent-filter>
</service>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.hardware.location.network" />
<uses-permission android:name="android.hardware.location.gps" />
<queries>
<package android:name="com.google.android.apps.maps" />
</queries>
<uses-feature android:name="android.hardware.wifi" android:required="false"/>
<uses-feature android:name="android.hardware.screen.portrait" android:required="false"/>
<uses-feature android:name="android.hardware.screen.landscape" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
</manifest>
automotive_app_desc.xml
<?xml version="1.0" encoding="utf-8"?>
<automotiveApp xmlns:tools="http://schemas.android.com/tools">
<uses name="template" />
</automotiveApp>
And here is the "manifest" of the phone app (original app)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.programame_udis">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.permission.CAMERA" android:required="false"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
</queries>
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name="net.recursoseducativos.programame_udis.canvas_manuscrito"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent"
/>
<activity
android:name="net.recursoseducativos.programame_udis.axenda_parte"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent" />
<activity
android:name=".aplicacion.alumnado_parte"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent" />
<activity
android:name=".aplicacion.diario_parte"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent" />
<activity
android:name=".aplicacion.partes_udi"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent" />
<activity
android:name=".aplicacion.arquivos"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent" />
<activity
android:name=".aplicacion.configuracion"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent" />
<activity
android:name="com.canhub.cropper.CropImageActivity"
android:exported="true"
android:theme="#style/Base.Theme.AppCompat" />
<activity
android:name=".aplicacion.cabecera_elector"
android:exported="true"
android:theme="#style/Theme.AppCompat.Translucent" />
<activity android:name=".barcodescanner.lector_qr_camara"
android:exported="true"
/>
<activity android:name=".aplicacion.axenda"
android:exported="true"
/>
<activity
android:name=".aplicacion.alumnado"
android:windowSoftInputMode="stateVisible"
android:exported="true"
/>
<activity android:name=".aplicacion.diario"
android:exported="true"
/>
<activity android:name=".aplicacion.aplicacion"
android:exported="true"
/>
<activity android:name=".login.MainActivity"
android:theme="#style/SplashTheme"
android:background="#color/negro"
android:exported="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="net.recursoseducativos.programame_udis.AlarmBroadcastReceiver" />
</application>
</manifest>
I have tested with and without <uses-permission and uses-feature in the Android Auto app, but ever the same result, no way to launch it in the car, because is not available in the android auto list.
Thanks in advance.
Can you add the contents of the automotive_app_desc.xml file? Also, you should declare the minimum Car App API level as a <meta-data> element in the manifest.
I tried publishing my first app today and everything seems fine except for these supported devices. No phones are included in this list. The app is mostly just a basic reminder app with an app locking feature. User can select apps to lock for x amount of time, like productivity stuff. I'm not sure what I have to change in my androidmanifest in order to solve this issue.
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.reminderapp"
tools:ignore="MissingLeanbackLauncher">
<permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
<categoDry android:name="android.intent.category.LAUNCHER" />
</intent>
</queries>
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.software.leanback"
android:required="true" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="Reminder App"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/Theme.ReminderApp">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".AppsListActivity"
android:exported="true"
android:launchMode="singleInstance">
</activity>
<receiver android:name=".AlertReceiver" />
<service
android:name=".LockWindow"
tools:ignore="Instantiable" />
</application>
</manifest>
Ok I figured out the issue.
in the manifest...
<uses-feature
android:name="android.software.leanback"
android:required="true" />
this should be false ->
android: required = "false"/>
I'm trying to change my default activity in Android Studio. I have added the MAIN and LAUNCHER intent tags to VrMainActivity, removed the MAIN and LAUNCHER tags from MainActivity and still get a "Default Activity not found" error. I have also invalidated cache/restarted. Also no errors in the Merged Manifest section of the editor, totally stuck on what the problem is.
Here's my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.thanics.andrew.halocontrol">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-feature
android:name="android.hardware.vr.headtracking"
android:required="false"
android:version="1" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-feature
android:name="android.software.vr.mode"
android:required="false" />
<uses-feature
android:name="android.hardware.vr.high_performance"
android:required="false" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- Make accelerometer and gyroscope hard requirements for good head tracking. -->
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true"/>
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true"/>
<application
android:allowBackup="true"
android:icon="#mipmap/halo_drone_app_icon"
android:label="#string/app_name"
android:roundIcon="#mipmap/halo_drone_app_icon_round"
android:supportsRtl="true"
android:theme="#style/Theme.AppCompat.Light.NoActionBar"
>
<activity
android:name=".VrMainActivity"
android:screenOrientation="landscape"
android:configChanges="density|keyboardHidden|navigation|orientation|screenSize|uiMode"
android:enableVrMode="#string/gvr_vr_mode_component"
android:resizeableActivity="false"
android:theme="#style/VrActivityTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.google.intent.category.LAUNCHER" />
<!--<category android:name="com.google.intent.category.CARDBOARD" />-->
<category android:name="com.google.intent.category.DAYDREAM" />
</intent-filter>
<!-- The VR icon to be used in Daydream Home comes in two parts:
a foreground icon and a background icon. -->
<meta-data android:name="com.google.android.vr.icon"
android:resource="#mipmap/halo_drone_app_icon" />
<meta-data android:name="com.google.android.vr.icon_background"
android:resource="#mipmap/halo_drone_app_icon" />
</activity>
<activity
android:name=".MainActivity">
</activity>
<activity
android:name=".StereoFlightActivity"
android:screenOrientation="landscape">
</activity>
</application>
</manifest>
you need to use <category android:name="android.intent.category.LAUNCHER" /> to make any
activity as launcher .
Just replace <category android:name="com.google.intent.category.LAUNCHER" /> to <category android:name="android.intent.category.LAUNCHER" /> inside your Manifest.
try to add this line:
<category android:name="android.intent.category.DEFAULT" />
in the <intent-filter> tag
I have a trouble with my app. I use Android Studio, and I tested it on the Asus Zenfone 3 (Android vers. 5.0.2). When I intall my app, my smartphone doesn't show my customize icon.
I already checked into my manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:icon="#mipmap/klain"
android:roundIcon="#mipmap/klain"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity
android:name=".KlainRoboticsMir"
android:exported="true"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar">
<intent-filter>
<actions android:name="android.intent.actions.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".BackgroundMir"
android:enabled="true"
android:exported="true" >
</service>
<receiver
android:name=".AlarmManagerServiceBattery"
android:enabled="true"
android:exported="true">
</receiver>
</application>
and I have the correct mipmap resource because I see my image how preview:
screenshot
Have you some ideas where is my fault?
Thanks very much
I'm trying to increase my apps compatibility as it currently only supports 21 devices. I've read that permissions and features in the manifest file determine how compatible your app is. Is there a way I can check how compatible each feature or permission is?
What is stopping my app from having more supported devices?
Heres my manifest file.
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="22" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:theme="#style/Theme.AppCompat.Light" >
<meta-data android:name="com.google.android.gms.version" android:value="#integer/google_play_services_version" />
<receiver
android:name=".GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.example.example.example" />
</intent-filter>
</receiver>
<service android:name=".GcmIntentService" />
<activity
android:name=".MainActivity"
android:label="#string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SplashScreen"
android:label="#string/app_name" android:theme="#style/Theme.AppCompat.Light.NoActionBar">
</activity>
<activity
android:name=".PostDetailActivity"
android:label="#string/app_name"
android:theme="#style/Theme.AppCompat.Light"
android:windowSoftInputMode="stateHidden">
</activity>
<activity
android:name=".NotificationsActivity"
android:label="#string/app_name"
android:theme="#style/Theme.AppCompat.Light"
android:windowSoftInputMode="adjustPan">
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="example"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="com.example.example.importedapplication.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.example.importedapplication.permission.C2D_MESSAGE" />
<uses-feature android:name="com.google.android.maps" android:required="true" />
<permission
android:name="com.arshad.map.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="22" />
<uses-feature android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
I never used it, just heard about it:
https://source.android.com/compatibility/cts/index.html
I know there are some features in Google Play as well (never used, just heard about it):
https://support.google.com/googleplay/android-developer/answer/1286017?hl=en
<uses-feature android:name="com.google.android.maps" android:required="true" />
This line needed to be deleted, after I removed it, I increased my supported devices by about 8050