Android Question Google Play App APK Submit error android:exported

yeun924

New Member
I have created a new version app and I am trying to upload the APK to the play store.

It ask me to use level 31 and doing that it gives me this error:
You uploaded an APK or Android App Bundle which has an activity, activity alias, service or broadcast receiver with intent filter, but without 'android:exported' property set.


B4A version I using is :12.00 (64 bit)

What am I missing to set the android:exported?

<code>
AddManifestText(
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="33"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:theme, "@android:style/Theme.Holo.Light")
SetApplicationAttribute(android:largeHeap,"true")


AddManifestText(
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

)

AddManifestText(
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
)

'************ Google Play Services Base (notisfication)***************************************************************************************
AddApplicationText(
<activity android:name="com.google.android.gms.common.api.GoogleApiActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="false"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@Integer/google_play_services_version" />
)

AddApplicationText(
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
)
'********* TabStrip ***********************************************************************************************************
CreateResource(drawable, background_tab.xml,
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime">
<item android:state_pressed="true" android:drawable="@Color/background_tab_pressed" />
<item android:state_focused="true" android:drawable="@Color/background_tab_pressed"/>
<item android:drawable="@android:color/transparent"/>
</selector>)
CreateResource(values, colors.xml,
<resources>
<color name="background_tab_pressed">#6633B5E5</color>
</resources>)
'*************************Google Maps(API Key 5 Homecare HD)******************************************************************************************************
AddApplicationText(
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyB1JcQd4BaRxSfQ0ODwXqabFOn4Qvd49fI"/>
)
AddManifestText( <permission
android:name="$PACKAGE$.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>)
'*******************************************************************file provider************************************************************
AddApplicationText(
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="$PACKAGE$.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
)
CreateResource(xml, provider_paths,
<external-files-path name="name" path="shared" />
)
'=================================================================
AddPermission (android.permission.CALL_PHONE)
AddPermission (android.permission.CAMERA)
AddPermission(android.permission.RECORD_AUDIO)
AddPermission(android.PERMISSION_ACCESS_FINE_LOCATION)
AddPermission(android.PERMISSION_ACCESS_COARSE_LOCATION)
AddPermission(android.permission.ACCESS_NETWORK_STATE) 'notis
AddPermission(android.permission.INTERNET) ' Allows applications to open network sockets. notis
AddPermission(android.permission.WAKE_LOCK) 'notis


AddPermission(android.useAndroidX)

AddPermission(android.enableJetifier)


CreateResourceFromFile("google-services", "google-services.json")
CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)
CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)
CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)
CreateResourceFromFile(Macro, FirebaseAuth.FirebaseAuth)
CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''Firebase Base''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
AddPermission(com.google.android.c2dm.permission.RECEIVE)
AddPermission(${applicationId}.permission.C2D_MESSAGE)
AddManifestText( <permission android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />)
AddApplicationText(
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementReceiver" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.measurement.UPLOAD"/>
</intent-filter>
</receiver>

<service
android:name="com.google.android.gms.measurement.AppMeasurementService"
android:enabled="true"
android:exported="false"/>
<provider
android:authorities="${applicationId}.firebaseinitprovider"
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:exported="false"
android:initOrder="100" />
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.measurement.UPLOAD"/>
</intent-filter>
</receiver>

<service
android:name="com.google.android.gms.measurement.AppMeasurementService"
android:enabled="true"
android:exported="false"/>
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
android:exported="false" />


<service
android:name="com.google.firebase.iid.FirebaseInstanceIdService"
android:exported="true">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
)
''************ Firebase Base (end) ************

</code>
 
Top