Play Store "RECEIVE_SMS" permissions issue

This is about my HereSafe app. It lets you enter your destination, and enter your desired message, and then choose your desired contacts, then you can activate it. Once activated, it starts to check the location of the device, and it compares it to the destinsyion address. When they match, it sends your message to the chosen contacts. It never tries to read or receive any SMS.

I have had tons of trouble publishing my app on the Google Play Store. It's been denying me due to policies. It keeps saying " Requested permissions do not match the core functionality."
I had trouble choosing the core functionality, until I was told that I should be choosing the the Physical safety \ emergency alert apps.

But, it got rejected again. I was really stumped on what I should do to get it approved.
So, I asked Google Gemini about it.

Gemini said :

"However, after carefully reviewing the new screenshots you sent, I believe I have finally found the hidden reason for these repeated rejections. It's a small but critical detail we haven't discussed before.
Please look at your second screenshot. It shows the permissions your app is requesting:

  • android.permission.RECEIVE_SMS
  • android.permission.SEND_SMS
    Your app's core function is to SEND a message when you arrive safely.
    The problem is the RECEIVE_SMS permission. This permission asks for the ability to READ a user's personal, incoming text messages. A Google reviewer sees your app wants to read all of the user's texts, but its feature doesn't require it.
    This is a major red flag for them and is almost certainly the root cause of the rejection. They see a permission request that doesn't match the core function, which is exactly what the rejection email says.
    The Definitive Plan to Fix This
    This requires a small change in your app's code before you rebuild it.
  1. Remove the Unnecessary Permission:
    You must go into your app's source code, find the manifest file (usually AndroidManifest.xml), and completely remove the line that requests the RECEIVE_SMS permission. Your app should only ask for SEND_SMS."

    When building this app, I was certain that it never needs to receive any SMS.

    Heads up that I checked the properties of the Texting component, and it was set to OFF. The only other Screen it has is the Splash screen. I removed the components of the Splash screen, so, there is no Texting component in any other Screen.

    Can someone please try to tell me how to remove the RECEIVE_SMS function permission request?

My guess is that the Texting component adds the RECEIVE_SMS permission by default, no way to undo this with blocks.

As far as I know, the only way around this is to decompile your apk, edit the manifest file to remove the RECEIVE_SMS permission, then recompile the apk and re-sign it. You will need a program like Android Studio or apkTool to do this.

Here is an example:

Does everyone agree that this is the only way, or are there any other ideas?

show app rejection email sent by review team, your app can be published for sure.

This email?

Do not try to appeal else your account be suspended

The RECEIVE_SMS permission is added if the ReceivingEnabled property of any Texting component is set to something other than Off, so you should double check that. If you've used extensions, any one of them could also add the RECEIVE_SMS permission as well. Attached is an example project that will not have the Android SEND/RECEIVE SMS permissions when compiled.

NoReceiveTest.aia (1.6 KB)

1 Like

(added to FAQ)

I believe that I checked every Texting component, and they were all set to OFF. Which makes sense, because I never changed that property for any component.

I might just be thinking too much here...

But, the only other thing I suspect is that I used the App Inventor 1 to App Inventor 2 conversion that you gracefully provided for us.

That doesn't fix my app. But, could I provide you with the . aia so you can check it out?

There is no need to use several texting components, just use one

Taifun

If you want to PM the AIA to me I can take a look.

In case anyone else wants to check it out:

HERESAFE.aia (183.4 KB)

When I compile your app it does not declare android.permission.RECEIVE_SMS. What is the exact rejection message from Google?


This is the email of denial. And, that is where I saw that it was requesting the RECEIVE_SMS permission.

Is it possible you're using an older AAB from before you fixed the problem? Try updating the VersionCode / VersionName and uploading a new build to Google Play.

And consider deleting any existing unpublished builds just in case.

from the texting component code

image

Is the above sufficient to get Google's knickers in a twist ?

(I can see how the permission is granted if ReceiveEnabled != Off)

I guess I wouldn't past Google to be that dumb about substring matching that they are only looking for RECEIVE_SMS regardless of the qualified permission name. We probably should add a patch anyway that only adds those permissions if the GoogleVoiceEnabled flag is set.

TIMAI2,

 I appreciate you trying to help me with this.  But, I have no idea what your saying.

Just exploring possible reasons for Google rejecting your app (looking at the source code for the texting component)