Im confused. My Manifest looks like this (App-Name removed):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="2" android:versionName="0.8.2" package="com.xxxxxxx.xxxx" android:installLocation="auto">
<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="30" />
<application android:label="LABEL" android:theme="#style/MainTheme" android:usesCleartextTraffic="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
But if I open the "permission" page in App-Store, it shows that the App "may use" storage permission.
My App doesnt need any access to external storage. Why this permission is listet in the store (and also in the app-settings after installation)?
How can I remove this? Its confusing for the users.
Related
Updating the Install Referrer Library from v1.0 to v1.1 added the following permissions:
WRITE_EXTERNAL_STORAGE
READ_EXTERNAL_STORAGE
READ_PHONE_STATE
Those permissions are not present in the Install Referrer Library manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.installreferrer" >
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<application />
</manifest>
Source:
https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1
Why those permissions added to the merged manifest?
This is because they have added a dependency to
com.google.android.gms:play-services-measurement:17.2.1
Which adds those permissions.
You can find it on the file:
manifest-merger-blame-debug-report.txt
which is under "yourApp/build/intermediates/manifest_merge_blame_file/debug
It's probably a bug. I currently just downgraded back to 1.0.
But if you need this version you can add
<uses-permission android:name="<permission_name>" tools:node="remove" />
To disable it.
Know that if you'll use any API which needs it inside the library it could lead to a crash so i won't recommend doing so.
Version 1.1 and 1.1.1 are missing "minSdkVersion". This would automatically add those permissions. See similar issue here: Google Play Services 12.0.1.
Solution
Version 1.1.2 solves this issue.
Details
Manifest.xml for v1.0 (from https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.installreferrer" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="22" />
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<application />
</manifest>
Manifest.xml for v1.1 (from https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.installreferrer">
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<application />
</manifest>
I am trying to upload an APK file to Huawei App gallery and after submitting it to review i got this result with two warnings
https://i.imgur.com/8E2cewu.jpg
FIRST Warning :
Incorrect adaptive devices. Check whether the configuration in the AndroidManifest.xml file is compatible with watch apps.
SECOND Warning :
Incorrect adaptive devices. Check whether the configuration in the AndroidManifest.xml file is compatible with VR apps.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="####">
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:name=".Application"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/GreenActionBarTheme">
</application>
</manifest>
Looks it was not a big problem because they accepted my app 3 days later .. So you just need to be patient !
my APK is requesting these permissions:
android.permission.ACCESS_NETWORK_STATE
android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
android.permission.INTERNET
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_LOGS
android.permission.WRITE_EXTERNAL_STORAGE
I can see that when I try to publish the APK on the play store or when I try to install the APK on my physical device.
However, my app manifest only has:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" />
Why would my app request the other permissions?
My solution has a Xamarin.Forms PCL project, a shared PCL utilities project and the native Android project.
I'm using SQLite.NET (it doesn't require these permissions) could it be related?
Any ideas?
EDIT: Here is the entire manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.SpaceMonkey.Boats">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21" />
<application android:label="Boats" android:icon="#drawable/anchor" android:theme="#android:style/Theme.Material"></application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" />
</manifest>
Acording to this article Xamarin.Insights.dll manifest have this:
[assembly: UsesPermission("android.permission.WRITE_EXTERNAL_STORAGE")]
[assembly: UsesPermission("android.permission.INTERNET")]
Could be this your case?
I'm developing an Android app with Android studio.
I've been trying to set some permissions into my manifest file in order to write some file to the external storage everything following the tutorial: http://developer.android.com/training/basics/data-storage/files.html
Here is my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="timetracker.iuandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<android:uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<android:uses-permission android:name="android.permission.READ_PHONE_STATE" />
<android:uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
..... and some more tags .....
The problem is that manifest is telling me that "android:name" is an unknow attribute, and if I remove it, of course, it tells me that a name attribute is needed, so I can't create a new file in my app because of this permission problem
Is there somethign I'm missing? or something deprecated not shown at the tutorial?
I can't post Images due to my low reputation sorry but the error goes throgh every android:name= and android:name= tags
There seem to be multiple issues with your AndroidManifest file. First, a Java Package is usually declared like the following:
com.domain.package
So your declaration should be com.iuandroid.timetracker.
Secondly, the maxSdkVersion in in the wrong spot. This...
android:maxSdkVersion="18" />
should be in the <uses-sdk/> section, not between the permission tags. Your permissions are also declared incorrectly; it should be...
<uses-permission android:name="YOUR_PERMISSION"/>
instead of...
<android:uses-permission android:name="YOUR_PERMISSION"/>
Lastly, you are also missing a few closing tags. Your AndroidManifest.xml file should be as follows when formatted correctly:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="timetracker.iuandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
I've published my app on google playstore, the app is now visible to phones, but I cannot see it with my tablet(Nexus /). Here is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.application.myapp"
android:versionCode="3"
android:versionName="2.0" >
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="13" />
<supports-screens
android:anyDensity="true"
android:xlargeScreens="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"/>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app"
android:supportsRtl="true" >
<activity.......>
</activity>
</application>
</manifest>
How can I make it visible to tablets?
This Stack Overflow question is very similar to yours. It suggests that besides screen sizes, you should make sure that your permissions and features are all things that the particular device can use. (For example, setting the camera feature would cause devices without cameras to be excluded.)
Manifest and supported devices showed in Android market - Stack Overflow
I am pretty sure it's the WRITE_APN_SETTINGS permission. Requesting it only worked on older devices, nowadays (>= Android 4.0 I think) it is only granted to system apps.