Android permission.INTERACT_ACROSS_USERS denial

TL;DR; Either this stack trace does not belong to your application or you need a permission that you don’t have. To know about those permissions read the rest. Although Michele probably has found the answer, I’ve decided to answer this question as it might be useful for others. Mentioned permissions are signature|system level permissions. To … Read more

When do I need android.hardware.location.gps and android.hardware.location.network?

The second quotation is telling you that you need either android.hardware.location.network or android.hardware.location.gps, if you specifically need one or the other location provider. If you want updates via GPS, you need android.hardware.location.gps. If you want updates via the WiFi and cellular networks, you need android.hardware.location.network. If you want updates from both the network and GPS, … Read more

Ask permission for push notification

UPDATE 2022 The way we request permissions on Android has changed drastically with Android 13. Please see other answers below that mention the same. As answered here, you don’t need permissions for push notifications. Actually the push notification permission lie in the normal category permission like Internet permission, not in dangerous category permission. You don’t … Read more

Why has the READ_PHONE_STATE permission been added?

I eventually found this, which reports the same issue. One workaround is mentioned in Answer #3, which is to remove the permission “manually” (my assumption is that the permission is only required for very early Android versions, which is OK for me since my minSdk is 16): <manifest … xmlns:tools=”http://schemas.android.com/tools” … > <uses-permission android:name=”android.permission.READ_PHONE_STATE” tools:node=”remove” … Read more

Optional permissions so an app can show on all devices and enable optional features on some?

What is a general solution for this problem? For that specific problem, add <uses-feature android:name=”android.hardware.telephony” android:required=”false”/> to your manifest, to indicate that this feature is optional. You can then use PackageManager and hasSystemFeature() to determine if a device has the non-required feature at runtime.