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 · 12 comments
Open

Google restricts the use of the USE_FULL_SCREEN_INTENT permission. #222

pyjserv opened this issue Jul 13, 2024 · 12 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?

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

3 participants