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
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"/>
After the upload of my apk on the Google Play Developer Console my app is supported by 0 devices. Where is my error here?
I've tested it on my testing device and it works very well....
My AndroidManifest file:
<?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.megalnt.elmeloratprinter">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<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/Theme.AppCompat.NoActionBar">
<service
android:name="com.megalnt.elmeloratprinter.FloatingService"
android:enabled="true"
android:exported="false"/>
<service
android:name="com.megalnt.elmeloratprinter.BluetoothConnectService"
android:enabled="true"
android:exported="false"/>
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:windowSoftInputMode="adjustResize"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
build.gradle
gradle file
When built my application, the built apk is not working any other devices. It is only working in my mobile. The error message i founded is user permission is not available and security exception. It is only working in my phone.
Here is my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dineshkumar.panicbutton">
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<application
android:allowBackup="true"
android:icon="#drawable/welcome"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:exported="true"
android:theme="#style/AppTheme">
<activity
android:name=".Welcome"
android:label="Panic Button"
android:theme="#style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:theme="#style/AppTheme.NoActionBar">
</activity>
<activity android:name=".Emergency" />
<activity android:name=".Contacts" />
<activity android:name=".ManualCadd" />
<activity android:name=".Message" />
<activity android:name=".Guide" />
<activity android:name=".Updatecontacts" />
<activity android:name=".ShowContacts" />
</application>
Your device should have Android 6.0 version or above to handle Runtime Permissions. Also you need to set the Target SDK version to 23 or above for listing dangerous permissions.
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