Reputation: 31
My app is already live at Google Play titled "Maheikol". But in past day it was rejected due violating policy.
I had a feature in my app as a support, where user can call, sms and email to us. Due to new Policy my app has been rejected for call and sms feature.
In Manifest i Used
<!-- phone call permissions-->
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
And in AppUtils.java
public static void makePhoneCall(Activity activity, String phoneNumber) {
if (phoneNumber != null) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + phoneNumber));
if (PermissionUtils.isPermissionGranted(activity, PermissionUtils.CALL_PERMISSIONS, PermissionUtils.REQUEST_CALL)) {
activity.startActivity(callIntent);
}
}
}
public static void sendSMS(Activity activity, String phoneNumber, String text) {
if (phoneNumber != null) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + phoneNumber));
intent.putExtra("sms_body", text);
try {
activity.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Upvotes: 2
Views: 7200
Reputation: 2835
According to google You may only request permissions that are necessary to implement critical current features or services in your application. You may not use permissions that give access to user or device data for undisclosed, unimplemented, or disallowed features or purposes.
Click Here To Read Official Google Permission Doc
In your case your method makePhoneCall use Intent.ACTION_CALL which needed call permission , i will suggest you to use Intent.ACTION_DIAL which will redirect you to dialer and your app can still call using this function via dialer so you don't need any call permission for that.
public static void makePhoneCall(Activity activity, String phoneNumber) {
if (phoneNumber != null) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:" + phoneNumber));
activity.startActivity(callIntent);
}
}
Upvotes: 0
Reputation: 3926
you have two options
1) you have request to google with declaration why your app need this permission, then they give access to your app.
2) make App policy using this click and put this policy in play console as Pricypolicy.
then, Update app with higher version code.
reade this Permission Declaration and SMS & Call Permission use
Upvotes: 0
Reputation: 62419
If you really wants to use these types of permission with valid use. You have to provide privacy policy in app and play console.
Have you read this docs :
Google Play restricts the use of high risk or sensitive permissions, including the SMS or Call Log permission groups.
If your app does not require access to Call Log or SMS permissions, you must remove these permissions from your app's manifest. Details on policy compliant alternative implementation are also detailed below.
If you believe your app meets the policy requirements for acceptable use or is eligible for an exception, you should declare any Call Log or SMS permissions directly through the Play Console.
For apps with Declaration Forms previously submitted, Google Play, at its discretion, may grant extensions until March 9, 2019 for you to bring your app(s) into compliance with this Play policy. You may also request an extension for March 9, 2019 directly through the Play Console by releasing a new version of your APK with a higher version code if you do not plan on using these permissions, but still require additional time to bring your app(s) into compliance.
Apps that fail to meet policy requirements or submit a Declaration Form may be removed from Google Play.
You should only access Call Log or SMS permissions when your app falls within permitted uses and only to enable your app’s core functionality.
Core functionality is defined as the main purpose of the app. It's the feature most prominently documented and promoted in the app’s description; no other feature is more central to the app’s functionality. If this feature isn't provided, the app is “broken” or rendered unusable (i.e., app is deprived of its primary functionality and will not perform as a user would expect).
Upvotes: 1