App rejected on playstore due policy violation default phone handler - android

I am trying to upload an bundle to play with the following permissions:
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
My app's core functionality is to work as a complete dialer like other phone apps like google phone, it shows call history, contacts place calls, etc. I have filled the declaration form and also gave reasons why I need the following permissions but still, my app is getting rejected again and again, also filed an appeal for the same still waiting for a response, please can anyone guide me what I am doing wrong.
below is the message sent by Google:-
Issue: Violation of Permissions policy After reviewing your app, we
found that it doesn’t qualify to use the requested permissions for the
following reason(s): Requested permissions do not match the core
functionality of the app You declared the Default Phone handler (and
any other core functionality usage while the default handler) as the
core functionality of your app. However, after review, we found that
your app does not match the declared use case(s). Learn more about
permitted uses and exceptions. Please either:
• Make changes to your app so that it meets the requirements of the
declared core functionality or,
• Select a use case that matches your app’s functionality

Some of requirements may not be met:
Your app must be able to perform the functionality for which it's a default handler. For example, a default SMS handler should be able to send text messages.
Your app must provide a privacy policy.
Your app must make its core functionality clear in the Play Store description. For example, a default Phone handler should describe its phone-related capabilities in the description.
Your app must declare permissions that are appropriate for its use case. For more details about which permissions you can declare as a given handler, see the guidance on using SMS or call log permission groups in the Play Console Help Center.
Your app must ask to become a default handler before it requests the permissions associated with being that handler. For example, an app must request to become the default SMS handler before it requests the READ_SMS permission.

Related

how can I publish an android app with android.permission.READ_CALL_LOG?

I have an android app to analyse data of calls using android.permission.READ_CALL_LOG but I got no way to upload it how can I do this.
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
I don't think you can upload an app with those permission and SMS permissions to the store anymore due to an update to the playstore an applications privacy policy . However, there are a few modifications you can make to your code which might allow ou to be able to push the application. Please see the materials below as reference:
https://android-developers.googleblog.com/2019/01/reminder-smscall-log-policy-changes.html
https://proandroiddev.com/no-more-sms-call-log-permissions-now-what-9b8226de7827
https://support.google.com/googleplay/android-developer/answer/9047303

Issue: Violation of Permissions policy After reviewing your app while uploading Android app on Store

While uploading my Android app , I receive a rejected mail from Google says that
Issue: Violation of Permissions policy After reviewing your app, we found that it doesn’t qualify to use the requested permissions for the following reason(s):
Based on our review, we found your app’s expressed user experience did not match your declared core functionality { Default SMS handler (and any other core functionality usage while default handler), Cross-device synchronization or transfer of SMS or calls, SMS-based financial transactions (e.g., 5 digit messages), and related activity including OTP account verification for financial transactions and fraud detection, Track, budget, manage SMS-based financial transactions (e.g., 5 digit messages) and related account verification }. Please remove these permissions from your app.
Your app seems to be a {Violation Monitoring app} and does not meet any of the allowed use cases. Hence, we cannot provide SMS/Call Log permissions.
I tried to search on it and I didn't find a real solution for my problem
Here is my Permissions
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<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-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
/>
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" /> ```
My app used read sms permission which allowed my app read otp sms send to user mobile device to verify user mobile number.
So i too received this violation policy permission mail stating i am using read sms permission in my app.Using that permission i was able toread OTP automatically from the sms.
But according to new google guidelines,we cant use read sms permission for above mentioned account verification.So right now i have removed sms read permission and made user to enter the otp received in sms manually.
If you are using read sms permission ,there are certain requirements to be met.
For apps requesting access to the SMS or Call Log permissions, the intended and permitted uses include default SMS handling, default
phone handling, or Assistant handling capability. Apps must be
actively registered as the default SMS, Phone, or Assistant handler
before prompting users to accept any of the above permissions and must
immediately stop the use of the permission when they no longer are the
default handler.
I got information from this link.
https://support.google.com/googleplay/android-developer/answer/9047303
Hope this helps you.

Rejected app Issue: Violation of Permissions policy

I recently sumbitted an app for the Play store. The app got rejected and I have no clue as to how to fix it. The error is clear enough, but not the solution.
Issue: Violation of Permissions policy After reviewing your app, we found that it doesn’t qualify to use the requested permissions for the following reason(s):
Based on our review, we found your app’s expressed user experience did not match your declared core functionality {Default Phone handler (and any other core functionality usage while default handler)}. Please remove these permissions from your app.
Default handler capability was listed on your declaration form, but your app does not appear to have default handler capability. Please submit a revised declaration form.
I find the UI of the Google Play Store to be very confusing for me. They aren't answering any emails and I'm at a loss of what to do.
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
If you're using any SMS or CALL_LOG related permission you need to submit a Permissions Declaration Form for your app.
This new policy is designed by Google to ensure that apps asking for these permissions have core functionality related to them and need full and ongoing access to the sensitive data in order to accomplish the app's primary use case.
Android Developers Blog SMS/Call Log Policy Changes
Please refer here to understand the details on policy
you face this error because of some critical permission in manifest file. e.g GET_ACCOUNTS,READ_PROFILE. So for this you have to mention privacy policy page url if you have website or create your own privacy policy using following link:
https://privacypolicygenerator.info/
Just to put it out there. I resolved this by removing the permissions and only rely on PHONE_STATE
for my purposes.

Is there an easy way to use oAuth2 without an AccountManager?

I'd like to use a web service in my app which uses oAuth2. The official Android docs suggest I use AccountManager for this, but it also states that third party apps aren't able to use the ACCOUNT_MANAGER permission. When adding the permission to my manifest:
android.permission.ACCOUNT_MANAGER
I get the following error: Permission is only granted to system apps
So how do I actually work with oAuth if I can't use AccountManager?
These are the pre-Marshmallow permissions you would need to act as a client of AccountManager.
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
You can find out which calls need which permissions by looking at the AccountManager documentation.
ACCOUNT_MANAGER permission is for the service that responds to your app's requests. That gives it ability to access authenticators directly.

My app on play store says not compatible with the device....!

I published my application on the play store and it says not compatible.
I have tried with many devices and it says the same thing for all of them..
here are my permissions.
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-feature android:name="android.harware.camera"></uses-feature>
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Maps API needs OpenGL ES 2.0. -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
help would be appreciated..
I guess it is the camera permission, you have to set the:
<uses-feature android:name="android.hardware.camera.autofocus" />
into
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
P.S : Google play doesn't show Your app on device instantly after uploading. it takes some time.
Google Play uses the elements declared in your app manifest to filter your app from devices that do not meet it's hardware and software feature requirements.
By specifying the features that your application requires, you enable Google Play to present your application only to users whose devices meet the application's feature requirements, rather than presenting it to all users.
Declared elements are informational only, meaning that the Android system itself does not check for matching feature support on the device before installing an application. However, other services (such as Google Play) or applications may check your application's declarations as part of handling or interacting with your application. For this reason, it's very important that you declare all of the features (from the list below) that your application uses.
Each time you upload an application to the Google Play Developer Console, Google Play scans the application's manifest file. It looks for elements and evaluates them in combination with other elements, in some cases, such as and elements. After establishing the application's set of required features, it stores that list internally as metadata associated with the application .apk and the application version.
When a user searches or browses for applications using the Google Play application, the service compares the features needed by each application with the features available on the user's device. If all of an application's required features are present on the device, Google Play allows the user to see the application and potentially download it. If any required feature is not supported by the device, Google Play filters the application so that it is not visible to the user and not available for download.
Because the features you declare in elements directly affect how Google Play filters your application, it's important to understand how Google Play evaluates the application's manifest and establishes the set of required features.
Use Feature
You should check if your device is compatible with the permissions requested, there is a method to check on that, as explained here.
!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)
You also can download an app (not mine) that lists all the permissions your device is capable of, here

Categories

Resources