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.
Related
I want to enable phone permission by default for an Android application. On checking multiple posts I see that it is getting added up at runtime explicitly by user during installation. Can I avoid it and enable it by default?
I am adding the permission READ_PHONE_STATE in Android Manifest. But this doesn't enable it by default unless and until the user goes to the setting and enable it manually.
Permission needs to be requested from the user. If you try to use the feature without permission, it will crash the app. The permission needs to be in the manifest and you need to request permission from the user as well. There is no way to do it automatically.
Side note: I believe this permission specifically is under higher scrutiny when submitted to the Play Store. The announcement they sent last year mentioned that you'll only be able to use this permission if you provide a valid reason such as making an alternative dialer app.
Now that Android 6.0 becomes more popular among users, I've asked myself what the consequences of the selective permission granting are.
Let's assume I had a free ad-supported version of an app. It will obviously need internet permission to query ads. Now the user is able to deny that permission and apps could not be queried. The consequence I am thinking of is to deny app function if not all the permissions are granted. But this would make the permission model pointless for my app. It would be an "all or nothing" scenario. Is that thinking correct? I am interested in your thoughts.
Another thought I had was: Is the permission of internet access granted to AdMob automatically, by any chance? This would prevent users from disablings ads simply by takingvaway the internet permission. As AdMob is a Google company and this functionality is implemented in the Google Play Services, I guess that could be possible?! Any thoughts on this?
Let me know what you think.
Update: Admob also wants to have Location Info. So even though Internet does not need permission, the question still is interesting.
#mad: in android 6.0, your app never ask your to allow internet permission. because internet not part of user's privacy in android 6.0
(in sort user not able to deny internet permission) only on/off internet from device!
so don't worry about it. you app work same in android 6.0 as previous version of android.
you have to ask user for permission only if you are using, CAMERA, CONTACTS, LOCATION, MICROPHONE, Phone, STORAGE ...etc..
LOCATION: when you fetch location from your app and pass to any 3rd party app. in this case you must have to ask user to allow location permission. otherwise its not needed like Google Play service or In-App Purchease.(both fetch user location where app installed or product purchase but when we use both library in our app we must not have to ask location permission).
Regarding Google's recent announcement about Android M and Permissions model.
Per the official Android documentation:
Limited Permissions Granted at Install Time: When the user installs or
updates the app, the system grants the app all permissions that the
app requests that fall under PROTECTION_NORMAL. For example, alarm
clock and internet permissions fall under PROTECTION_NORMAL, so they
are automatically granted at install time. The system may also grant
the app signature and system permissions, as described in System apps
and signature permissions. The user is not prompted to grant any
permissions at install time.
Particular note that it says:
...the system grants the app all permissions that the app requests.
So, if the app does not have INTERNET permission in its AndroidManifest.xml, it won't be granted access to INTERNET in that case?
Or will an app require to add INTERNET permission in its manifest in order to be able to make network calls?
As for the specific android.permission.INTERNET permission, it is still mandatory for apps that will access the Internet. If a developer were to publish an app without defining it in the Android manifest, an exception will be thrown the first time a connection attempt is made, and the app will possibly crash. This is no different than before.
All that has changed is that there won't be a prompt to the user, the app will still require the permission in the manifest.
Please check this video from Google IO - https://youtu.be/f17qe9vZ8RM?t=18m10s
There is no more Internet permission - the app will have by default access to the internet. Their idea is that if you don't have access to the device data then you can not do anything dangerous
Kind Regards
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.
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