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"/>
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 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>
Below is my manifest file, I have included all the necessary code as per the document but still the app is not displaying in the play store search. I searched using the appId for my Alpha build using my test account which i have included in the tester list.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.package">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.software.leanback"
android:required="true" />
<application
android:name=".TestApp"
android:allowBackup="true"
android:banner="#drawable/logo"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<receiver android:name=".BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:directBootAware="true">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="android.intent.action.REBOOT"/>
</intent-filter>
</receiver>
<activity
android:name=".activity.MediaActivity"
android:theme="#style/Theme.AppCompat"
android:launchMode="singleInstance"/>
<activity
android:name=".activity.CodeActivity"
android:theme="#style/Theme.Leanback">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.CodeAndroidStickActivity"
android:theme="#style/Theme.AppCompat">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
I tried setting the android.software.leanback field to both true and false, but still not getting displayed
In your app manifest, you must declare that a touch screen is not required, as shown this example code; otherwise, your app won't appear in Google Play on TV devices.
<manifest>
<uses-feature android:name="android.hardware.touchscreen"
android:required="false" />
...
</manifest>
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 an application that may or may not work with NFC. I have added these lines to manifest:
<manifest ...>
<uses-feature android:name="android.hardware.nfc" android:required="false"/>
<uses-permission android:name="android.permission.NFC" />
</manifest>
When I search for the application in google play, the message continues: "Your device is not compatible with this version"
I have verified that the NFCAdapter is not null, I have requested the pertinent permissions directly in execution ... but that message continues to come out.
APORTACION:
manifest.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.app.app">
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-feature android:name="android.hardware.nfc" android:required="false"/>
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<application
android:name=".App"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<service
android:name=".timer.UploadService"
android:enabled="true"
android:exported="true">
</service>
<service
android:name=".services.uploaddata.ui.UploadDataService"
android:enabled="true"
android:exported="true">
</service>
<activity android:name=".main.ui.MainActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".p1.ui.class1"
android:label="#string/title_activity_class1"
android:screenOrientation="portrait"
android:launchMode="singleTask">
</activity>
<activity
android:name=".p2.ui.class2"
android:label="#string/title_activity_class2"
android:screenOrientation="portrait"
android:theme="#style/class2ActivityTheme"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
<activity
android:name=".p3.ui.class3"
android:theme="#style/AppTheme.ActionBar"
android:label="#string/title_activity_class3"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".p4.ui.class4"
android:label="#string/title_activity_class4"
android:theme="#style/AppTheme.ActionBar"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".p5.ui.class5"
android:label="#string/title_activity_class5"
android:screenOrientation="portrait">
</activity>
</application>
</manifest>
my problem is not a bad code. I waited for one to two days and the problem was solved. It is possible that google servers did not resolve the request well and took a little longer to update. I really do not know what the reason was but my app is already working :)