0 SUPPORTED DEVICES for Android APK Release - android

I have an apk on Google Play which says that it has 0 supported devices. I tried to put all the features on false, but still no effect.
This is what Google says when I upload the apk:
enter image description here
The code below is what I have in manifest 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.dentasoft.admin"
>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="false"/>
<!-- Indicates use of Android's VR-mode, available only on Android N+. -->
<uses-feature android:name="android.software.vr.mode" android:required="false"/>
<!-- Indicates use of VR features that are available only on Daydream-ready devices. -->
<uses-feature android:name="android.hardware.vr.high_performance" android:required="false"/>
<application
android:name=".MyApplication"
android:icon="#drawable/ic_launcher_background"
android:label="#string/app_name"
android:roundIcon="#drawable/ic_launcher_background"
android:supportsRtl="true"
android:theme="#style/AppTheme"
tools:ignore="GoogleAppIndexingWarning"
android:networkSecurityConfig="#xml/network_security_config">
<activity android:name=".tickets.TicketViewActivity"></activity>
<activity
android:name=".tickets.TicketActivity"
android:label="#string/title_activity_tickets"
android:theme="#style/AppTheme" />
<activity
android:name=".LogIn"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name=".MainMenu"
android:label="#string/title_activity_main_menu"
android:theme="#style/AppTheme" />
<activity
android:name=".messenger.Messenger"
android:label="#string/title_activity_messenger" />
<activity
android:name=".scanner.ActivityScanner"
android:label="#string/title_activity_scanner"
android:parentActivityName=".MainMenu" />
<activity
android:name=".scanner.ActivityScannerResult"
android:label="#string/title_activity_scanner_result">
</activity>
<!--<activity-->
<!--android:name=".scanner.status.ActivityPopUpStatus"-->
<!--android:theme="#style/AppTheme.PopupTheme"/>-->
<activity android:name=".tickets.NewTicketActivity"
android:theme="#style/AppTheme.PopupTheme"/>
<meta-data
android:name="com.google.android.gms.vision.DEPENDENCIES"
android:value="barcode" />
<activity
android:name=".Starter"
android:label="#string/app_name"
android:theme="#style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".history.CommandListActivity" />
<activity
android:name=".Notifications"
android:label="#string/title_activity_notifications"
/>
<activity android:name=".history.SearchPopupActivity"
android:theme="#style/AppTheme.PopupTheme"/>
<activity android:name=".scanner.stl.StlActivity"
android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.stl"
android:scheme="http" />
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.stl"
android:scheme="https" />
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.stl"
android:scheme="content" />
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.stl"
android:scheme="file" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/stl"/>
<data android:mimeType="application/x-stl"/>
<data android:mimeType="application/octet-stream" android:scheme="content"/>
</intent-filter>
</activity>
<activity
android:name=".scanner.stl.gvr.ModelGvrActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:enableVrMode="#string/gvr_vr_mode_component"
android:label="#string/app_name"
android:resizeableActivity="false"
android:screenOrientation="landscape">
<!--
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="#drawable/vr_icon" />
<meta-data
android:name="com.google.android.vr.icon_background"
android:resource="#drawable/vr_icon_background" />
<intent-filter>
<category android:name="com.google.intent.category.CARDBOARD" />
<!--
The DAYDREAM category should only be declared by Activities that are Daydream
compatible. Daydream compatible apps should typically use the Daydream
controller APIs directly, however in this sample app we instead rely on
Cardboard trigger emulation.
-->
<category android:name="com.google.intent.category.DAYDREAM" />
</intent-filter>
</activity>
<service
android:name=".floating_heads.ChatHeadService"
android:enabled="true"
android:exported="true" />
<service
android:name=".notifications.NotificationListener"
android:label="#string/service_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="#xml/provider_paths" />
</provider>
<uses-library
android:name="com.sec.android.app.multiwindow"
android:required="false" />
<meta-data
android:name="com.sec.android.support.multiwindow"
android:value="true" />
</application>
</manifest>
I verified the gradle file and I don't have the problem with 'commons-codec:commons-codec:1.+' compilation.

SOLVED (Answer received from Google Support)
The line
<uses-feature android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"/>
is not supported by any device.

Related

Android: Less broad app-visibility method should be used

After publishing in the play store they reviewed our app they sent this message to my mail.
Following is the manifest file.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="se.thelins"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="tel" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="mailto" />
</intent>
</queries>
<application
android:label="Thelins"
android:usesCleartextTraffic="true"
android:icon="#mipmap/ic_launcher">
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyCFsgpO9RT68LqCGHQ1rzyaf2zrxrUMRS0"/>
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="#style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="thelins" android:host="swish" />
</intent-filter>
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.apptreesoftware.barcodescan.BarcodeScannerActivity"/>
</application>
</manifest>
I can't find much about this issue over the internet, If you need any further information please ask in the comments section.

Android 12 Exported True not showing notifications in the notification bar

I had to modify my app for Android 12. The app now runs and notifications come but only within the app itself, prior to this they would be in the notification bar. I fixed areas where it needed the android:exported="true" so it would launch on Android 12. But I'm not getting notifications in the notification bar. Could someone help me point out where I've not added the exported rule or if theres something else I need to do ?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.spliceystudios.apps.esf"
xmlns:tools="http://schemas.android.com/tools">
<queries>
<package android:name="com.google.android.apps.maps" />
</queries>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/> <!-- BroadcastReceiver permission to listen to the network -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" /> <!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-feature
android:name="android.hardware.location"
android:required="true" />
<uses-feature
android:name="android.hardware.location.gps"
android:required="true" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<application
android:name="com.spliceystudios.apps.esf.AppController"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:largeHeap="true"
android:networkSecurityConfig="#xml/network_security_config"
android:supportsRtl="true"
android:theme="#style/AppTheme"
tools:replace="android:icon,android:theme,android:supportsRtl"
>
<activity
android:name="com.spliceystudios.apps.esf.activities.ReportIssueActivity"
android:label="#string/title_activity_report_issue"
android:theme="#style/AppTheme.NoActionBar"></activity>
<uses-library
android:name="org.apache.http.legacy"
android:required="false" /> <!-- Goolge Maps API Key -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="#string/map_api_key0" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="#string/ad_app_id" />
<service android:name="com.spliceystudios.apps.esf.push_notification_firebase.FirebaseMessagingServiceIns"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="com.spliceystudios.apps.esf.push_notification_firebase.FirebaseInstanceIDService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="#android:style/Theme.Translucent"
/>
<receiver android:name="com.spliceystudios.apps.esf.dtmessenger.DCMBroadcastReceiver"
android:exported="true">
<intent-filter>
<action
android:name="android.net.conn.CONNECTIVITY_CHANGE"
tools:ignore="BatteryLife" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
<activity
android:name="com.spliceystudios.apps.esf.activities.IntroSliderActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.MessengerActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.ReviewsActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.OffersListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.ListUsersActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.InboxActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.wuadam.awesomewebview.AwesomeWebViewActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:hardwareAccelerated="true"
android:theme="#style/FinestWebViewTheme.Light" />
<activity
android:name="com.spliceystudios.apps.esf.activities.MainActivity"
android:configChanges="uiMode"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.MapDirectionActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.MapStoresListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.AboutActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.ProfileActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.CategoriesActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.ListStoresActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.EventsListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.StoresListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.PeopleListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.CustomSearchActivity"
android:screenOrientation="portrait" />
<activity
android:exported="true"
android:name="com.spliceystudios.apps.esf.activities.SplashActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.spliceystudios.apps.esf.activities.SettingActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.SliderActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.GalleryActivity"
android:screenOrientation="portrait" />
<activity
android:exported="true"
android:name="com.spliceystudios.apps.esf.activities.OfferDetailActivity"
android:screenOrientation="portrait">
<intent-filter android:label="#string/_DP_OFFER_MESSAGE">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_OFFER"
android:scheme="nsapp" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_OFFER"
android:scheme="http" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_OFFER"
android:scheme="https" />
<!-- WITH INDEX -->
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_OFFER_INDEX"
android:scheme="nsapp" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_OFFER_INDEX"
android:scheme="http" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_OFFER_INDEX"
android:scheme="https" />
</intent-filter>
</activity>
<activity
android:name="com.spliceystudios.apps.esf.activities.StoreDetailActivity"
android:screenOrientation="portrait"
android:exported="true">
<intent-filter android:label="#string/_DP_STORE_MESSAGE">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_STORE"
android:scheme="nsapp" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_STORE"
android:scheme="http" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_STORE"
android:scheme="https" />
<!-- WITH INDEX -->
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_STORE_INDEX"
android:scheme="nsapp" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_STORE_INDEX"
android:scheme="http" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_STORE_INDEX"
android:scheme="https" />
<!-- note that the leading "/" is required for pathPrefix -->
</intent-filter>
</activity>
<activity
android:name="com.spliceystudios.apps.esf.activities.EventDetailActivity"
android:screenOrientation="portrait"
android:exported="true">
<intent-filter android:label="#string/_DP_EVENT_MESSAGE">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_EVENT"
android:scheme="nsapp" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_EVENT"
android:scheme="http" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_EVENT"
android:scheme="https" />
<!-- note that the leading "/" is required for pathPrefix -->
<!-- WITH INDEX -->
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_EVENT_INDEX"
android:scheme="nsapp" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_EVENT_INDEX"
android:scheme="http" />
<data
android:host="#string/_DP_HOST_NAME"
android:pathPrefix="#string/DP_PATH_PREFIX_EVENT_INDEX"
android:scheme="https" />
</intent-filter>
</activity> <!-- Version 2.0 activities -->
<activity
android:name="com.spliceystudios.apps.esf.activities.V2MainActivity"
android:configChanges="uiMode"
android:label="#string/title_activity_v2_main"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name="com.spliceystudios.apps.esf.activities.CustomSearchActivity$LoginActivityV2"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.CustomSearchActivity$ResultFilterActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.customView.AdvancedWebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.customView.PaymentWebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.booking.views.activities.ServiceOptionsActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.booking.views.activities.BookingCheckoutActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.booking.views.activities.BookingListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.booking.views.activities.BookingDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.spliceystudios.apps.esf.activities.FindMyPlaceActivity"
android:screenOrientation="portrait" />
</application>
</manifest>
In your FirebaseMessagingServiceIns / MESSAGING_EVENT section, change the exported value to false
<service android:name="com.spliceystudios.apps.esf.push_notification_firebase.FirebaseMessagingServiceIns"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
and it'll match the guidelines on the Firebase website https://firebase.google.com/docs/cloud-messaging/android/client

Targeting android 12 failed with error of `android:exported`

after setting android:exported still got this error of Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter definedAfter setting all components on Manifest, still receive an error of "Error:
Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined."
<?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.easymountain.quechua">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"-->
<!-- tools:ignore="ScopedStorage" />-->
<!-- <uses-permission-->
<uses-permission
android:name="android.permission.CLEAR_APP_CACHE"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT" />
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT" />
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:name=".base.BaseApplication"
android:allowBackup="false"
android:fullBackupContent="false"
android:hardwareAccelerated="true"
android:icon="#mipmap/ic_launcher"
android:installLocation="internalOnly"
android:label="#string/screen_app_name"
android:largeHeap="true"
android:requestLegacyExternalStorage="true"
android:networkSecurityConfig="#xml/network_security_config"
android:screenOrientation="portrait"
android:supportsRtl="true"
android:theme="#style/AppTheme"
android:usesCleartextTraffic="true"
tools:replace="android:name,android:hardwareAccelerated,android:allowBackup,android:label">
<!-- SDKNAVIGATION -->
<activity
android:name="com.easymountain.quechua.ui.sdknavigation.MpMainActivity"
android:configChanges="orientation|screenSize|locale"
android:exported="true"
android:screenOrientation="portrait"
tools:node="merge"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
<data android:scheme="geo" />
</intent-filter>
</activity>
<service
android:name="com.easymountain.quechua.ui.sdknavigation.navigation.delegate.MpTraceRecorder"
android:foregroundServiceType="location"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />
<activity
android:name="com.easymountain.quechua.ui.sdknavigation.poinative.fragment.MpVideoPlayerFullScreenActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:screenOrientation="landscape"
android:exported="false"
android:theme="#style/VideoPlayerTheme" />
<!-- <activity-->
<!-- android:name="com.onegravity.contactpicker.core.ContactPickerActivity"-->
<!-- android:enabled="true"-->
<!-- android:exported="false">-->
<!-- <intent-filter>-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
<meta-data
android:name="preloaded_fonts"
android:resource="#array/preloaded_fonts" />
<!-- SDKNAVIGATION -->
<activity
android:name=".ui.splash.SplashActivity"
android:screenOrientation="portrait"
android:exported="true"
tools:node="merge"
android:theme="#style/AppTheme.NoActionBarSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.authentification.AuthWebViewActivity"
android:exported="false"
android:theme="#style/Theme.AppCompat.Light.NoActionBar">
</activity>
<activity
android:name=".ui.main.MainActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"
android:launchMode="singleTop"
android:theme="#style/Theme.AppCompat.Light.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan|adjustResize"
android:exported="true"
tools:node="merge"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="quechuahikefinder" />
</intent-filter>
<intent-filter>
<action android:name="quechuahikefindermobileapplication.HANDLE_AUTHORIZATION_RESPONSE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="net.openid.appauth.RedirectUriReceiverActivity"
android:exported="true"
tools:node="merge">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="login"
android:scheme="quechuahikefinder" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="#string/mp_google_map_api_key" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id"
tools:replace="android:value" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="#xml/provider_paths"
tools:replace="android:resource"/>
</provider>
<service
android:name=".service.MyFirebaseMessagingService"
android:exported="false"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<receiver android:name=".ui.utils.gpsStatusListener.GpsLocationReceiver"
android:exported="true"
tools:node="merge"
tools:ignore="Instantiatable">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="com.decathlon.quechuafinder.workmanager-init"
android:exported="false"
tools:node="remove" />
</application>
</manifest>
For an app targeting Android SDK Version 31(Android 12 OS) or above we need to set the android:exported="true" for any of our app's own activity and any 3rd party library's activity in our app's manifest, where ever the <intent-filter... is added.
We faced this issue for auth0 Android SDK.

My app show splash screen every time i tap home screen icon while app in background

I am developing an android app but there is a problem
When I press home button from my device navigation when the app is show in the
display it's gone background
but when I tap app icon from home screen then every time it shows
splash screen first and then takes me to wherever(activity) I left
last
if I start the app from the recent task then it doesn't show me
splash screen and directly take me to wherever(activity) I left.
here Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.videowatermark.addtextandtimestampongalleryvideos">
<!-- In App Billing permission -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="com.android.vending.BILLING" /> <!-- Network permission -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- Location Permisssion -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- Storage Permission -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- System Overlay Window -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" /> <!-- Restart of Devcie -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- Audio setting -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <!-- Tell the system this app requires OpenGL ES 2.0. -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:name=".AutoStamperApplication"
android:allowBackup="true"
android:fullBackupContent="true"
android:hardwareAccelerated="true"
android:icon="#drawable/autologo"
android:label="#string/app_name"
android:largeHeap="true"
android:networkSecurityConfig="#xml/network_security_config"
android:roundIcon="#drawable/autologo"
android:theme="#style/AppTheme">
<activity
android:name=".Activity.StampedVideoListAct"
android:label="#string/stamped_video"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="#style/AppTheme" />
<service
android:name=".services.StampOnVideoService"
android:enabled="true"
android:exported="true" />
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<meta-data
android:name="firebase_performance_collection_enabled"
android:value="false" />
<meta-data
android:name="asset_statements"
android:resource="#string/asset_statements" />
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="#string/Video_Gallery_Stamper_APP_ID" />
<meta-data
android:name="com.onesignal.NotificationOpened.DEFAULT"
android:value="DISABLE" />
<activity
android:name=".Activity.AutoStamperActivity"
android:label="#string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".Activity.InAppBillingActivity"
android:label="#string/txt_inapp_title"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="#style/AppTheme" />
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.AppCompat.Light.NoActionBar" />
<activity
android:name=".Activity.OfferActivity"
android:label="#string/offer_activity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="#style/AppTheme" />
<activity
android:name=".Activity.SplashScreenActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="#style/AppThemeNoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Activity.InternalBrowserActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.autostamper.us"
android:path="/about-us"
android:scheme="http" />
<data
android:host="www.autostamper.us"
android:path="/terms-and-condition"
android:scheme="http" />
<data
android:host="www.autostamper.us"
android:path="/privacy-policy"
android:scheme="http" />
<data
android:host="www.autostamper.us"
android:path="/date-and-time-stamp"
android:scheme="http" />
<data
android:host="www.autostamper.us"
android:path="/signature-stamp"
android:scheme="http" />
<data
android:host="www.autostamper.us"
android:path="/gps"
android:scheme="http" />
<data
android:host="www.autostamper.us"
android:path="/watermark-logo"
android:scheme="http" />
<data
android:host="www.autostamper.us"
android:path="/*"
android:scheme="http" />
</intent-filter>
</activity>
<service
android:name=".services.VideoStampingService"
android:icon="#drawable/ic_logo"
android:label="#string/app_name"
android:stopWithTask="false" />
</application>
</manifest>
Please remove below line from your splash activity tag
android:launchMode="singleTask"
<activity
android:name=".Activity.SplashScreenActivity"
android:screenOrientation="portrait"
android:theme="#style/AppThemeNoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

Android app opens in old app when shareing file

I have kind of a wierd problem. I have setup my app to be the default launcher for opening files, in the manifest, like the code sample below.
For example if I chose to open a file from the default android download app it looks like this:
Is there a way to let it open in a new app/window such that the download app and my app looks like being two different apps?
MANIFEST FILE
<activity
android:name=".SplashActivity"
android:label="#string/app_name"
android:noHistory="true"
android:screenOrientation="sensorPortrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/pdf" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/rtf" />
<data android:mimeType="image/jpeg" />
<data android:mimeType="image/png" />
<data android:mimeType="image/tiff" />
<data android:mimeType="image/bmp" />
<data android:mimeType="image/gif" />
<data android:mimeType="application/postscript" />
<data android:mimeType="application/msword" />
<data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
<data android:mimeType="application/vnd.ms-powerpoint" />
<data android:mimeType="application/vnd.ms-excel" />
<data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
</intent-filter>
</activity>
Complete manifest file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="princh.princh">
<uses-permission android:name="android.permission.INTERNET" />
//Allows the app to use the internet connection
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
//Allows the app to check the connection status in order to determine whether data can be downloaded.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//Allows the app to cache map tile data in the device's external storage area.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
//Allows the app to use WiFi or mobile cell data (or both) to determine the device's location.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//Allows the app to use the Global Positioning System (GPS) to determine the device's location to within a very small area.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="#mipmap/princh_launcher_icon"
android:label="#string/app_name"
android:theme="#style/Theme.AppCompat.Light.NoActionBar" >
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyD1e3EbexMClXfkyULNViJlOPgeubzZdfI" />
<service
android:name=".network.NetworkManager"
android:exported="false" >
</service>
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:screenOrientation="sensorPortrait" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".PrintJobActivity"
android:label="#string/app_name"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name=".SelectPrinterOptionsActivity"
android:label="#string/title_activity_select_printer_options"
android:launchMode="singleTop"
android:parentActivityName=".PrintJobActivity"
android:screenOrientation="sensorPortrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".PrintJobActivity" />
</activity>
<activity
android:name=".PrintRangeActivity"
android:label="#string/title_activity_print_range"
android:parentActivityName=".PrintJobActivity"
android:screenOrientation="sensorPortrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".PrintJobActivity" />
</activity>
<activity
android:name=".ShowPrinterMapActivity"
android:label="#string/title_activity_select_printer_map"
android:parentActivityName=".SelectPrinterOptionsActivity"
android:screenOrientation="sensorPortrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SelectPrinterOptionsActivity" />
</activity>
<activity
android:name=".PrintPreviewActivity"
android:label="#string/title_activity_print_preview"
android:parentActivityName=".SelectPrinterOptionsActivity"
android:screenOrientation="sensorPortrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SelectPrinterOptionsActivity" />
</activity>
<activity
android:name=".OrderInfoActivity"
android:label="#string/title_activity_order_info_activitty"
android:screenOrientation="sensorPortrait">
</activity>
<activity
android:name=".PaymentActivity"
android:label="#string/title_activity_payment"
android:screenOrientation="sensorPortrait"
android:windowSoftInputMode="adjustNothing">
</activity>
<activity
android:name=".OrderDetailsActivity"
android:label="#string/title_activity_order_details"
android:screenOrientation="sensorPortrait">
</activity>
<activity android:name="sdt.brc.android.BarcodeScanActivity"
android:label="#string/app_name">
<intent-filter>
<category android:name="android.intent.category.EMBED" />
</intent-filter>
</activity>
<activity
android:name=".TermsAndConditionsActivity"
android:label="#string/title_activity_terms_and_conditions"
android:screenOrientation="sensorPortrait">
</activity>
<activity
android:name=".SplashActivity"
android:label="#string/app_name"
android:noHistory="true"
android:screenOrientation="sensorPortrait"
android:process=":PrinchProcess">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/pdf" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/rtf" />
<data android:mimeType="image/jpeg" />
<data android:mimeType="image/png" />
<data android:mimeType="image/tiff" />
<data android:mimeType="image/bmp" />
<data android:mimeType="image/gif" />
<data android:mimeType="application/postscript" />
<data android:mimeType="application/msword" />
<data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
<data android:mimeType="application/vnd.ms-powerpoint" />
<data android:mimeType="application/vnd.ms-excel" />
<data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
</intent-filter>
</activity>
<activity
android:name=".JobStatusActivity"
android:label="#string/title_activity_job_status"
android:screenOrientation="sensorPortrait">
</activity>
<activity
android:name=".ShowReceiptActivity"
android:label="#string/title_activity_show_receipt"
android:screenOrientation="sensorPortrait">
</activity>
<activity
android:name=".QRCodeReaderActivity"
android:label="#string/title_activity_qrcode_reader"
android:screenOrientation="sensorPortrait">
</activity>
<activity
android:name=".PrintjobHistoryActivity"
android:label="#string/title_activity_printjob_history"
android:screenOrientation="sensorPortrait">
</activity>
</application>
</manifest>
Add the documentLaunchMode attribute to your Manifest. The default value is none, you probably want to use intoExisting, or always.
You can also take a look at allowTaskReparenting, and taskAffinity for fined control over the tasks and the stack.

Categories

Resources