studio permission permisos manager example android service permissions gps manifest

permisos - request camera permission android



No se puede resolver Manifest.permission.ACCESS_FINE_LOCATION (12)

Al agregar permisos a mi archivo de manifiesto, el siguiente xml funciona.

<permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Sin embargo, este xml no funciona.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

¿Cuál se supone que debo usar? Si es el primero, ¿por qué no funcionaría? ¿Cómo puedo arreglarlo?

Además, recibo una excepción relacionada con los permisos de tiempo de ejecución de Android 6.0:

java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.

Cuando intento agregar el permiso a una matriz de cadenas para verificar el permiso, Android Studio me dice que no puede resolver el permiso Manifest.permission en el siguiente código:

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

¿Por qué estaría haciendo esto? ¿Cómo puedo arreglarlo?


¡Prueba esto! Dado que ACCESS_FINE_LOCATION está disponible en el siguiente paquete, agregue:

import android.Manifest;


Cambio

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

A esto

new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}

Su problema será resuelto


Cuando escribe "Manifiesto", Android Studio debería sugerirle que elija algunas opciones de Manifiesto. Debe elegir el inicio único de Android en lugar del nombre de su proyecto.

Si accede a la referencia de Manifest.java y puede encontrar que solo hay 1-2 líneas en la clase "Permiso", entonces está haciendo referencia a la clase de manifiesto incorrecta.


Para la primera parte, debe usar <uses-permission> usuario <uses-permission> según el sitio de Android Devlopers . Intente asegurarse de declarar sus permisos directamente bajo la etiqueta <manifest> , no en su etiqueta <application> . Es difícil saber cuál es su problema sin ver todo su archivo de manifiesto. Consulte el enlace que publiqué anteriormente para obtener más información sobre cómo declarar permisos en su manifiesto.

En lo que respecta a su problema de permisos de tiempo de ejecución:

Con permisos de uso No se puede resolver eso ...

nueva Cadena [] {Manifest.permission.ACCESS_FINE_LOCATION}

¿Por qué?

Asegúrese de estar usando android.Manifest lugar de my.app.package.Manifest . Muchas veces, Android Studio usará el último en lugar del primero.

Entonces, su nueva línea de código se vería así:

new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};

Editar: volví a formatear mi respuesta.

Edición 2: Tenga cuidado al importar android.Manifest . Puede causar problemas si también está importando my.app.package.Manifest . Aparte de esa import android.Manifest es otra forma válida de resolver este problema.


Prueba esto:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_SELECT_PICTURE); return; }


Pruebe esto antes de ejecutar, asegúrese de tener permiso para acceder.

try { location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); } catch (SecurityException e) { dialogGPS(this.getContext()); // lets the user know there is a problem with the gps }


Si ya tiene la configuración de uses.permissions correctamente en su archivo de manifiesto, como ya lo mencionó hnilsen, simplemente reemplace su línea:

Manifest.permission.ACCESS_FINE_LOCATION

por este:

android.Manifest.permission.ACCESS_FINE_LOCATION

Esto puede resolver tu problema.


Tuve un problema similar donde lo usé;

ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED

donde no pudo resolver el símbolo READ_CONTACTS .

Sin embargo en el uso;

import android.Manifest;

Comenzó a reconocer READ_CONTACT


cambia esto

Manifest.permission.ACCESS_FINE_LOCATION

dentro de esto

android.Manifest.permission.ACCESS_FINE_LOCATION


si está trabajando en permisos dinámicos y cualquier permiso como ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION que da el error "no puede resolver el método PERMISSION_NAME", en este caso escriba su código con el nombre del permiso y luego reconstruya su proyecto, esto regenerará el archivo de manifiesto (Manifest.permission)


new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

cámbielo a

android.manifest.permission.ACCESS_FINE_LOCATION


if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { mapView.setMyLocationEnabled(true); } } else { mapView.setMyLocationEnabled(true); }