2

we have an App and developer added this many permissions inside the manifest file.The App is available in play-store, but last time when we updated the App, google play rejected the update saying our app is trying unauthorized access of services.What are we doing wrong here? we didn't changed anything in the update (just fixed few errors). Also i have seen other app doing same purpose in the play store but it have only 3 permissions instead of all of the below.Are these permissions mandatory? can we skip so that we can update our app successfully? what are we missing?

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unitedapps.netguard"

    android:versionCode="2"
    android:versionName="1.0.1" >
 <!-- android:installLocation="preferExternal"-->
    <uses-sdk
        android:minSdkVersion="8"
        android:maxSdkVersion="20"
        android:targetSdkVersion="20" />

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
    <uses-permission android:name="android.permission.REORDER_TASKS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/TitleBarTheme" >



        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".NextActivity"
            android:label="@string/app_name" />

        <receiver android:name=".CheckRunningApplicationReceiver" />
        <receiver android:name=".NotificationListener" />
        <receiver android:name=".StartupReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="StartupReceiver_Manual_Start" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
        <receiver android:name=".MyWidgetProvider" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/demo_widget_provider" />
        </receiver>
        <receiver
            android:name=".MyWidgetIntentReceiver"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.netsaver.intent.action.UPDATE_WIDGET" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/demo_widget_provider" />
        </receiver>

         <activity
            android:name=".PopUpActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Dialog" >
        </activity>
    </application>

</manifest>
unitedartinc
  • 738
  • 1
  • 6
  • 25
  • 2
    Except for INTERNET permission written twice, you will have to give more information about what tasks your app performs to be able to help you out. – Exception Nov 12 '15 at 04:18
  • Or go through description of each permission from [here](http://developer.android.com/reference/android/Manifest.permission.html) and decide which one is redundant. – Exception Nov 12 '15 at 04:21
  • our app turns off WIFI/mobile data, but why they are saying our app interfere other services? how can we update the app? we cant change how it basically works.any idea? – unitedartinc Nov 12 '15 at 04:25
  • 2
    The new Android permission model may the reason for this. You have to request permissions at run time. http://developer.android.com/guide/topics/security/permissions.html http://developer.android.com/training/permissions/index.html – Jithin Sunny Nov 12 '15 at 04:30
  • @Sunny but we actually put targetAPI 20 since we need to exclude lollipop and marshmallow devices. – unitedartinc Nov 12 '15 at 04:38
  • Please post your manifest – Jithin Sunny Nov 12 '15 at 04:56
  • `we actually put targetAPI 20 since we need to exclude lollipop and marshmallow` But `targetAPI` doesn't **exclude** the upper APIs. It only tells the compiler to use a specific API to compile with. – Phantômaxx Nov 12 '15 at 08:02

1 Answers1

1

Except these special permissions (GET_TASKS, MODIFY_PHONE_STATE, SYSTEM_ALERT_WINDOW), you're fine to use rest of permissions which are normal permissions.

GET_TASKS permission is deprecated in API 21, but since your app is targeted for API 20, not sure if this should affect you.

getRecentTasks: this method is no longer available to third party applications: the introduction of document-centric recents means it can leak personal information to the caller.

The MODIFY_PHONE_STATE permission was marked as "for system use only" in Android 2.3. You may try out these solutions.

SYSTEM_ALERT_WINDOW is a particularly sensitive permission, so most apps should not use them. See if you can avoid using it.

Community
  • 1
  • 1
random
  • 10,238
  • 8
  • 57
  • 101
  • But first version , it got accepted in the google play with these same permissions, and only now they are rejecting it, any idea on how to solve that? – unitedartinc Nov 12 '15 at 06:30
  • You might want to ask google itself instead of guessing. – random Nov 12 '15 at 08:24
  • thats the worst part, its automated mail, i cant reply to it.It would be very easy if they clearly point out what is the issue. – unitedartinc Nov 12 '15 at 08:35
  • Try to contact them through one of their contact forms like the one for publication issues:https://support.google.com/googleplay/android-developer/contact/publishing?extra.IssueType=submitting&hl=en&ec=publish&cfsi=publish_cf&cfnti=escalationflow.email&cft=3&rd=1 – random Nov 12 '15 at 10:54