Android admob permissions - android

my android app already has the following permission:
android.permission.INTERNET"
I want to use the admob ads in ma application. I have seen a lot of examples how to use the admob in android and always
android.permission.ACCESS_NETWORK_STATE"
was needed as well.
Does anyone know if admob will work without the ACCESS_NETWORK_STATE permission, since this would require me to add another permission to the manifest.
Thanks

This permission basically allows admob to check if you're conneted to the internet or not
without it it won't work

Seeing how the manual literally states
Making ad requests requires the networking permissions INTERNET and
ACCESS_NETWORK_STATE, so these must also be declared in the manifest
I'd suggest it really requires the ACCESS_NETWORK_STATE permission. They are not just saying that to annoy their developers.

Related

What are the consequences of declaring irrelevant permissions in the Manifest file of an Android application?

I develop watchfaces for WearOS. I'm trying to modularize my code, by creating a base module that contains the common code for all my projects. Amoung other things, it should contain the code responsible for the in-app purchases. For this reason, I have to add <uses-permission android:name="com.android.vending.BILLING"/>. However, some projects don't have an in-app purchase. Therefore, these projects would inherit the BILLING permission, but actually woudn't need it.
So my questions are:
Is there a way around it? Like a way to conditionally specify aspects of the Manifest?
What are the consequences if I simply let this BILLING permission in, even if it's not required?
More generally, are there more "dangerous" permissions to let in when not required?
When uploading the app, you need to complete a Permissions declaration and the app goes through review. What you're seeking to do seems to explicitly run counter to the Play Store "Permissions policy" guidelines:
You may only request permissions that are necessary to implement current features or services in your app that are promoted in your Play Store listing.
I would expect your app to fail the review in light of this (or if it did pass the first time somehow, to possibly fail future reviews if it gets caught at a later stage).
Is there a way around it? Like a way to conditionally specify aspects of the Manifest?
I think there is no way of not declaring permissions in the manifest:
What are the consequences if I simply let this BILLING permission in, even if it's not required?
If it is a install-time permission the system will grant it automatically. But if it is a runtime-permission you must request the permission at runtime before usage.
So if you declare permissions that you do not need, in best case nothing happens. But I am not that much aware what kind of security issues can arrise from doing that.
Be aware that requesting permissions that you do not need in your App is against good practice:
Caution: Carefully consider which permissions you declare in your app's manifest. Add only the permissions that your app needs. For each permission that your app requests, make sure that it offers clear benefits to the user and that the request is done in a way that's obvious to them.
See also this post
Remove Permissions
You can also consider removing permissions in your (sub)modules that you declared in your base modules:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>

HERE Autocomplete: WRITE_EXTERNAL_STORAGE permission

I started to integrate the HERE Android Starter SDK into my application.
According to the documentation (and the runtime error) the permission WRITE_EXTERNAL_STORAGE is required to initialize the MapEngine:
MapEngine.getInstance().init(..)
However I'll only be using the autocomplete functionality.
What is this permission used for in this case?
I'm wondering whether it's used at all if no maps or map images are loaded.
Since this is a quite sensitive permission to ask the users for, I am searching for ways to not require this permission.
After some hours of investigation, this is what I found out:
The HERE Android Starter SDK is very easy to integrate, but the permissions are mandatory - no matter what features are used.
In the end I decided to integrate the HERE Autosuggest REST API, since that would not require the permissions mentioned.
Information on the REST-API endpoint can be found here: https://developer.here.com/documentation/places/topics/free-text-search.html

Android - which Permissions are "special" for Google Play?

When I add the permissions
"INTERNET"
"ACCESS_NETWORK_STATE"
to my app and upload it to Google Play, people who download the app see the message "this app doesn't require any special permissions".
Are the following permissions "special" for Google Play?
"ACCESS_WIFI_STATE"
"READ_PHONE_STATE"
I'm using a mobile ad SDK that claims to perform better if it is granted all four permissions. But I don't want to scare off some users by asking for too many permissions.
The permission READ_PHONE_STATE has to be accepted by users, ACCESS_WIFI_STATE doesn't.
Somebody asked already about the link between Android Permissions and Permission Groups - the selected answer links to the actual mapping file for the permissions of Android.
So the permissions you mentioned are belonging into the following groups and protection levels:
INTERNET: NETWORK (dangerous)
ACCESS_NETWORK_STATE: NETWORK (normal)
ACCESS_WIFI_STATE: NETWORK (normal)
READ_PHONE_STATE: PHONE_CALLS (dangerous)
Based on Google's explanation about the protectionLevel, "special permissions" (as you call it) are permissions marked as "dangerous" (as Google calls it).
But hey, INTERNET is dangerous! Why aren't users asked about this permission? Because.
Google has also given each app Internet access, effectively removing
the Internet access permission. Oh, sure, Android developers still
have to declare they want Internet access when putting together the
app. But users can no longer see the Internet access permission when
installing an app and current apps that don’t have Internet access can
now gain Internet access with an automatic update without prompting
you.

Connect to the Internet without permission

How can you update data with Internet connection, but without any permission, like in this android app?
https://play.google.com/store/apps/details?id=org.youcorp.matchschedule.eu http://img5.fotos-hochladen.net/uploads/screenshot2014ty0vjlxsu7.png
You have to write the permission android.permission.INTERNET in the Manifest file. There's no way around it. But as of the latest Play Store update (4.8.19), the Internet Permission won't show up on the dialog. That's why the text says "does not require any special permissions".
Google also states this in the following Support document (Click)
"These days, apps typically access the Internet, so network communication permissions including the “full Internet access” permission have been moved out of the primary permissions screen."
That app you are linking to has full network permissions.

necessary manifest permissions for ad providers?

I want to try some different ad providers for my android app.
Some of them want a lot permissions in the manifest which I don't always find appropriate.
(of course they all need android.permission.INTERNET since they fetch ads from their servers)
For example: Millenial Media wants android.permission.WRITE_EXTERNAL_STORAGE; a lot of other provider want android.permission.ACCESS_COARSE_LOCATION.
If I don't grant these permissions in the manifest does the app work correct anyway or could this cause problems?
And do I get ads from these providers anyway without these manifest-permissions?
Edit: it's hard to test all SDK's of the ad providers. For MoPub I know it still works if I don't give them android.permission.ACCESS_COARSE_LOCATION - and I get ads from them.
I think I will only get an Error when their SDK-Code is trying to use a Method which needs a permission - but they could catch this. So my question is more:
Do all ad providers handle this correct? And will they then refuse to send ads in general?
Edit-2:
Has anyone had errors/crashes because he didn't grant special permissions requested from the ad-providers SDK?
App will work fine but you will not get the adds.
these are compulsions , you need to add permissions in Android Manifest file .... its compulsion
From the official doc
If an application needs access to a feature protected by a permission,
it must declare that it requires that permission with a
<uses-permission> element in the manifest. Then, when the application
is installed on the device, the installer determines whether or not to
grant the requested permission by checking the authorities that signed
the application's certificates and, in some cases, asking the user. If
the permission is granted, the application is able to use the
protected features. If not, its attempts to access those features will
simply fail without any notification to the user.
This is the complete list of permissions you have to provide according to your needs

Categories

Resources