No se puede resolver Manifest.permission.ACCESS_FINE_LOCATION
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.
- DispatchKeyEvent desde Service
- Thread, Asynctask o intentService para mi aplicación?
- No se puede iniciar el servicio
- Mataron el servicio de Android y las variables estáticas
- El servicio de Android se detiene cuando se cierra la aplicación
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
¿Cuál debo usar? Si es el primero, ¿por qué no funcionaría? ¿Cómo puedo arreglarlo?
Además, estoy recibiendo una excepción relacionada con los permisos 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 String para verificar el permiso, Android Studio me dice que no puede resolver Manifest.permission
en el siguiente código:
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}
¿Por qué estaría haciendo esto? ¿Cómo puedo arreglarlo?
- ¿Es posible tener Android Voice Recognition (como un servicio personalizado) en Google Glass?
- ¿Cómo crear un proveedor de contenido en perfiles de usuario?
- No se puede llamar a runOnUiThread en un subproceso desde dentro de un servicio
- ¿Cómo utilizo Android SpeechRecognizer como servicio?
- Cómo evitar que el servicio se ejecute de nuevo si ya está ejecutando android
- Android: envía los datos de la ubicación en segundo plano periódicamente (cada 30 segundos) y solicita al servidor nuevos datos
- Priorizar la programación del reinicio del servicio androide bloqueado
- Android Context.bindService devuelve siempre falso y el objeto ServiceConnection nunca se activa
Para la primera parte, debes usar <uses-permission>
según el sitio Android Devlopers . Intente asegurarse de que declara sus permisos directamente bajo la etiqueta <manifest>
, no en su etiqueta <application>
. Es difícil saber cuál es su problema sin ver todo el archivo de manifiesto. Echa un vistazo al enlace que he publicado 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 uses-permissions No se puede resolver que ..
New String [] {Manifest.permission.ACCESS_FINE_LOCATION}
¿Por qué?
Asegúrese de que está utilizando android.Manifest
lugar de my.app.package.Manifest
. Un montón de veces Android Studio predeterminado a la última en lugar de la anterior.
Por lo tanto, su nueva línea de código se vería así:
new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
Edit: He reformateado mi respuesta.
Editar 2: Tenga cuidado de importar android.Manifest
. Puede causar problemas si también importa my.app.package.Manifest
. Aparte de eso import android.Manifest
es otra forma válida para resolver este problema.
cambia esto
Manifest.permission.ACCESS_FINE_LOCATION
dentro de esto
android.Manifest.permission.ACCESS_FINE_LOCATION
¡Prueba esto! Dado que ACCESS_FINE_LOCATION está disponible en el siguiente paquete, añada:
import android.Manifest;
Si está trabajando en permisos dinámicos y cualquier permiso como ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION que da error "no puede resolver el método PERMISSION_NAME" en este caso escriba el código con el nombre de permiso y luego reconstruya su proyecto esto regenerará el archivo de manifiesto (Manifest.permission)
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); }
Prueba esto antes de ejecutar, asegúrate 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 }
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; }
Al escribir "Manifest", Android Studio debería sugerirle que elija algunas opciones de Manifest. Usted debe elegir el androide de inicio en lugar del nombre de su proyecto.
Si accede a la referencia de Manifest.java y puede encontrar sólo hay 1-2 líneas en la clase "Permiso", entonces está haciendo referencia a la clase manifiesta mal.