Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Google restricts the use of the USE_FULL_SCREEN_INTENT permission. #222

Open
pyjserv opened this issue Jul 13, 2024 · 20 comments
Open

Google restricts the use of the USE_FULL_SCREEN_INTENT permission. #222

pyjserv opened this issue Jul 13, 2024 · 20 comments
Assignees
Labels
android For Android only bug Something isn't working

Comments

@pyjserv
Copy link

pyjserv commented Jul 13, 2024

Hi, @gdelataillade

I'm not sure whether I should post this in issues or discussions. Here's the situation: I developed a simple calendar app with a countdown timer and published it on the Play Store: https://play.google.com/store/apps/details?id=com.claberi.consilia

Recently, due to Google's restriction on the USE_FULL_SCREEN_INTENT permission, my app failed to pass review and I couldn't publish updates. I have appealed several times without success.

Since simply removing the declaration from my app still resulted in denial by Google, I had to download and manually remove the USE_FULL_SCREEN_INTENT declaration from the alarm plugin to pass the review.

I would like to ask if there is currently any way to request users to grant the USE_FULL_SCREEN_INTENT permission?

@pyjserv pyjserv added the bug Something isn't working label Jul 13, 2024
@gdelataillade
Copy link
Owner

Hi @pyjserv,

Regarding your issue with the USE_FULL_SCREEN_INTENT permission:

  1. Android 14 Default Behavior: As per this documentation, for apps installed on Android 14, the USE_FULL_SCREEN_INTENT permission is enabled by default. Ensure your app targets Android 14 (API level 34) or higher to benefit from this.
  2. App Category: Categorize your app as “alarm” in the Play Store. This aligns with the intended use of full-screen intents and can help during the review process.
  3. No Explicit Request: Unfortunately, there is no way to explicitly request the USE_FULL_SCREEN_INTENT permission from users. You need to ensure your app’s functionality complies with Google’s policies and targets the appropriate SDK.

If there are specific changes needed in the alarm plugin to support these requirements better, please let me know, and I’ll be happy to assist.

Best regards,

@gdelataillade gdelataillade added needs author feedback Further information or answer is requested by author android For Android only and removed needs author feedback Further information or answer is requested by author labels Jul 14, 2024
@pyjserv
Copy link
Author

pyjserv commented Jul 15, 2024

Hi, @gdelataillade

Thank you for your reply. As mentioned in the Google document you provided, starting from Android 14, only apps with alarm and call functionalities will have the USE_FULL_SCREEN_INTENT permission enabled by default. I believe I have set the app category to alarm (as shown in the picture), but the review was still rejected.

Screenshot_20240715_074132_Edge

@gdelataillade
Copy link
Owner

Hi @pyjserv,

When submitting your app for review, include a detailed note explaining why the full-screen intent is essential for your alarm functionality. Clearly state that the permission is necessary for delivering timely and critical alarm notifications, aligning with user expectations and the app’s primary purpose.

You can include this note in the “App Content” section under the “Privacy Policy” or “App Permissions Declaration” fields during the submission process.

Let me know if it helps.

@pyjserv
Copy link
Author

pyjserv commented Jul 24, 2024

Hi @gdelataillade

Unfortunately, Google informed me that the review did not pass. Due to my lack of experience and English not being my first language, I hope you or anyone can provide some advice and assistance. This is my third or fourth review rejection, and I am very confused and anxious.

In addition to appealing the USE_FULL_SCREEN_INTENT permission review, I have made other efforts:

  1. Created a short video to demonstrate how the app needs the USE_FULL_SCREEN_INTENT permission: https://www.youtube.com/shorts/IgffqLThNKA

  2. Explained the usage scenario of the USE_FULL_SCREEN_INTENT permission: The target users of the Consilia app are students preparing for exams. These users might be studying in a quiet library and may turn off their phone screens to save power or avoid distractions. If the app is granted the USE_FULL_SCREEN_INTENT permission, users will be able to immediately silence any vibrations or music alarms when they go off. Without this permission, the user experience of the app will be significantly affected.

However, there are several parts of Google's response (full text here) that I am unsure if I understood correctly, so I sought help from Google with the following three questions:

"Apps that request this permission are subject to review, and those that do not meet the above criteria will not be automatically granted this permission. In that case, apps must request permission from the user to use USE_FULL_SCREEN_INTENT."

Is there really a way to request permission from the user to use USE_FULL_SCREEN_INTENT now? Whether it's an Android native method or a Flutter plugin, can you provide some clues?

"We do suggest you update the entirety of your app's store listing to accurately reflect the core functionality that requires the use of USE_FULL_SCREEN_INTENT permission."

Does this mean I need to explicitly tell users in the full description of my app’s store listing that the USE_FULL_SCREEN_INTENT permission will be used?

"Alternatively, please provide a valid video link (for example, YouTube link or any cloud storage link) by replying to this email that demonstrates the core feature’s dependency on the USE_FULL_SCREEN_INTENT permission. You may create a video demonstrating the alarm working outside the app with interactive controls or a full-screen alarm display. Note that we cannot accept downloadable video files."

I cannot understand “the alarm working outside the app with interactive controls or a full-screen alarm display,” do you have any practical examples that could help understand? Does this mean only certain types of apps, such as those showing a large clock when opened, can be recognized as alarms? I don’t understand what key content was missing in my previous demo video.

This is Google's response (full text here). After reading it, I am still very confused. I don’t know if I currently have no possibility of applying for the USE_FULL_SCREEN_INTENT permission, or if I can pass the review as long as I complete the required parts. Or did I misunderstand or misuse something?

@desenvolvedor-apanheidoexcel

I'm in the same situation. App rejected by Google. Exactly the same thing.
Now the different thing is that I commented this permission in the Android Manifest, but it is set somewhere else, probably in the library itself.

<!-- <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/> -->

@pyjserv
Copy link
Author

pyjserv commented Jul 25, 2024

Hi @desenvolvedor-apanheidoexcel

You're right, it's declared in alarm library. You can add
tools:node="remove" to remove it.

Be sure the attribute exists in the root tag of your app's manifest:
<manifest ... xmlns:tools="http://schemas.android.com/tools">

Then add tools:node="remove" in the permission declaration in your app's manifest:
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" tools:node="remove" />

@desenvolvedor-apanheidoexcel

Hi @desenvolvedor-apanheidoexcel

You're right, it's declared in alarm library. You can add tools:node="remove" to remove it.

Be sure the attribute exists in the root tag of your app's manifest: <manifest ... xmlns:tools="http://schemas.android.com/tools">

Then add tools:node="remove" in the permission declaration in your app's manifest: <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" tools:node="remove" />

What are the consequences of not using this permission? In practice... can anyone tell me? I tested it (node=remove) on my app and everything worked normally. At first.
But I haven't sent it to Google for validation yet. Will that be okay?

@pyjserv
Copy link
Author

pyjserv commented Jul 26, 2024

Hi @desenvolvedor-apanheidoexcel

What are the consequences of not using this permission?

You can watch my demonstration video showing the screen automatically turning on while ringing: https://www.youtube.com/shorts/IgffqLThNKA.

In my case, if I remove the declaration of the USE_FULL_SCREEN_INTENT permission, the screen will not automatically turn on while ringing.

But I haven't sent it to Google for validation yet. Will that be okay?

I did this and officially released the new version of the app. However, without the USE_FULL_SCREEN_INTENT permission, the user experience will be reduced.

@desenvolvedor-apanheidoexcel

Hi @desenvolvedor-apanheidoexcel

What are the consequences of not using this permission?

You can watch my demonstration video showing the screen automatically turning on while ringing: https://www.youtube.com/shorts/IgffqLThNKA.

In my case, if I remove the declaration of the USE_FULL_SCREEN_INTENT permission, the screen will not automatically turn on while ringing.

But I haven't sent it to Google for validation yet. Will that be okay?

I did this and officially released the new version of the app. However, without the USE_FULL_SCREEN_INTENT permission, the user experience will be reduced.

Your solution really worked by removing the USE_FULL_SCREEN_INTENT permission with code above in Manifest:

<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" tools:node="remove" />

The version was approved and published in the play store.
I'll keep it that way.
Thank you very much for your help.

@pyjserv
Copy link
Author

pyjserv commented Jul 30, 2024

Hi @gdelataillade,

Although my appeal failed, I continue to observe how others are doing it. I found that most Pomodoro apps also do not have the USE_FULL_SCREEN_INTENT permission. However, some apps wake up the screen when the reminder notification is activated (only waking up the locked screen, and the screen remains locked, unlike apps with the USE_FULL_SCREEN_INTENT permission, which directly display on the locked screen). Could you please add this feature to the new version of the alarm?

@gdelataillade
Copy link
Owner

Hi @gdelataillade,

Although my appeal failed, I continue to observe how others are doing it. I found that most Pomodoro apps also do not have the USE_FULL_SCREEN_INTENT permission. However, some apps wake up the screen when the reminder notification is activated (only waking up the locked screen, and the screen remains locked, unlike apps with the USE_FULL_SCREEN_INTENT permission, which directly display on the locked screen). Could you please add this feature to the new version of the alarm?

Hi @pyjserv

Yes I could add a wake lock when alarm starts ringing to make sure the screen is on. But I need to set a wake lock duration and I'm wondering how long it should be. For long durations the battery can drain but for short duration the user could miss the wake lock. What do you think ?

@pyjserv
Copy link
Author

pyjserv commented Jul 31, 2024

Hi @gdelataillade

But I need to set a wake lock duration and I'm wondering how long it should be.

My personal experience is that 15 to 30 seconds is enough. However, can this become a setting value in AlarmSettings?

@wayupdev
Copy link

Hello everyone,

I managed to pass the verification by indicating this:
“My application uses an alarm that has a notification requiring immediate action from the user. See attachment”

You also need a screenshot of the notification with the clearly visible words “snooze” or “wake-up”. Representing immediate actions for the user.

Have a nice day!

@pyjserv
Copy link
Author

pyjserv commented Aug 20, 2024

Hi @wayupdev

Could you please provide the link to your app? I need more details to understand this part. 🙂

@gdelataillade
Copy link
Owner

Could you please provide the link to your app? I need more details to understand this part. 🙂

@pyjserv
https://play.google.com/store/apps/details?id=com.wayup.way_up&hl=en_US

@gdelataillade
Copy link
Owner

Hi @pyjserv

Were you able to pass Google verification ?

@pyjserv
Copy link
Author

pyjserv commented Aug 31, 2024

Hi @gdelataillade

Thank you for your attention. At present, my app has not passed the Google review and I am quite confused about what to do. On the notification screen, I also have buttons like "Cancel".

Screenshot_20240831_160757_YouTube

I currently do not understand Google's standards. From my observations on Google Play, apps in the Alarm category always pass the review, while most apps in the Timer category are allowed the USER_FULL_SCREEN_INTENT permission. However, I haven't seen any Pomodoro Timer apps using the USER_FULL_SCREEN_INTENT permission. This is strange because a timer and a Pomodoro timer are so similar.

My app, Consilia, is a type of Pomodoro app that combines the Pomodoro technique with calendar-based spaced repetition. I even asked if I should put a large timer on the main screen to pass the review, but Google did not provide a direct answer and only said that my app does not belong to an allowed category.

@gdelataillade
Copy link
Owner

Hi @pyjserv

I'm sorry to hear that you still haven't passed the Google review. I don't understand why they argue about the USE_FULL_SCREEN_INTENT if you removed it in your app manifest like this:
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" tools:node="remove" />

In my experience, consistently submitting your app for review and politely explaining why it meets the necessary criteria, along with providing clear screenshots and supporting materials, increases the probability of your app being accepted eventually.

Good luck and keep me updated !

@pyjserv
Copy link
Author

pyjserv commented Sep 3, 2024

Hi @gdelataillade

I don't understand why they argue about the USE_FULL_SCREEN_INTENT if you removed it in your app manifest

Oh, I'm sorry for the misunderstanding; I may have expressed myself incorrectly. If I remove the declaration of USE_FULL_SCREEN_INTENT, my app can pass the review.

@orkun1675
Copy link
Contributor

We had no issues going through Google Play Store review when initially releasing DestiWake or pushing updates to it. But recently we got an email from the Play Store team, out of the blue, that states the following:

We found that your app is not compliant with how USE_FULL_SCREEN_INTENT permission is allowed to be used. Specifically, the use of the permission is not directly related to the core purpose of the app.

Your app may face additional enforcement actions, if you do not resolve this issue by December 19, 2024.

After I'm able to get #282 and #283 integrated, we plan to record a new alarm feature usage video and appeal this warning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android For Android only bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants