Buenas, pongo en situación. Tengo una aplicación que al abrirla por primera vez te dice que tienes que darle permiso GPS y activarlo, hasta hay todo bien.
Luego cuando Pasas a otro Activity, en el cual se muestra el Mapa, al Iniciar el Activity, Me pide (Permitir usar ubicación mientras usas dispositivo, etc etc.)
Durante ESE MENSAJE y sin escoger nada , el DEBUG me arroja este error
Cuando Escojo una Opción , la aplicación se cierra, EN NINGUN MOMENTO el usuario ve el error , pero se le cierra la aplicación, y al abrirla funciona todo sin problemas, no se por que :/
En el activity conforme arranca la aplicación tengo
En la siguiente ACTIViTY que es la que tiene el mapa y en la cual al hacerme la pregunta da ese error tengo
ESTO LO TENGO EN EL ACTIVITY CREATE
ESTO EN EL CODIGO EN GENERAL
como ya digo, al cliente final el único error que aprecia es que se le cierra la aplicación al escoger mantener gps o otra. pero me tiene desconcertado, creo que es por que llamo en varios activitys al maps, pero no doy con la tecla.
Gracias
Luego cuando Pasas a otro Activity, en el cual se muestra el Mapa, al Iniciar el Activity, Me pide (Permitir usar ubicación mientras usas dispositivo, etc etc.)
Durante ESE MENSAJE y sin escoger nada , el DEBUG me arroja este error
B4X:
--------- beginning of crash
java.lang.RuntimeException: java.lang.SecurityException: my location requires permission ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION
at anywheresoftware.b4a.objects.MapFragmentWrapper$1.onMapReady(MapFragmentWrapper.java:196)
Cuando Escojo una Opción , la aplicación se cierra, EN NINGUN MOMENTO el usuario ve el error , pero se le cierra la aplicación, y al abrirla funciona todo sin problemas, no se por que :/
En el activity conforme arranca la aplicación tengo
B4X:
Starter.GPS.Initialize("GPS")
If Starter.GPS.GPSEnabled = False Then
ToastMessageShow("Debe Activar el GPS del Equipo.", True)
StartActivity(Starter.GPS.LocationSettingsIntent) 'Will open the relevant settings screen.
Else
'Starter.GPS.Start(0, 0) ' quito esto por que antes era GPS.Start(0, 0)
'pero ahora como lo meto en starter ya no em hace falta y me daba error
' StartActivity(GoogleMaps)
End If
En la siguiente ACTIViTY que es la que tiene el mapa y en la cual al hacerme la pregunta da ese error tengo
ESTO LO TENGO EN EL ACTIVITY CREATE
B4X:
If MapFragment1.IsGooglePlayServicesAvailable = False Then
ToastMessageShow("Por Favor instala los Servicios de Google Play.", True)
End If
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
'Starter.GPS.Initialize("GPS")
'Boton velocidad'
boton1.Initialize(0)
'---------VERSION 8.1.6 NUEVOS DATOS GOOGLE MAPS
Wait For MapFragment1_Ready
gmap = MapFragment1.GetMap
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result Then
gmap.MyLocationEnabled = True
Else
Log("No permission!")
End If
ESTO EN EL CODIGO EN GENERAL
B4X:
#Region "GPS"
Sub MapFragment1_Ready
gmap = MapFragment1.GetMap
Dim JavaMapsObject As JavaObject
JavaMapsObject = gmap.GetUiSettings
JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True))
Dim cp As CameraPosition
cp.Initialize(40.416660 , -3.703770, 10) ' le pongo el kilometro cero de madrid, me da error si lodesactivo.
gmap.AnimateCamera(cp)
End Sub
Sub GPS_LocationChanged (Parametro As Location)
Dim sp As Int
sp = Ceil(Parametro.Speed * 3.6)
boton1.Text = sp &" "&"km/h"
latitud = Parametro.Latitude
Longitud = Parametro.Longitude
p2.Initialize2(latitud,Longitud)
p1.Initialize2(Lat2, Lon2)
Distance = p1.DistanceTo(p2)
If latitud <> 0 And Longitud <> 0 Then
If Distance > 10 Then
Lat2 = latitud
Lon2 = Longitud
Dim cp As CameraPosition
' cp.Initialize2(Parametro.Latitude, Parametro.Longitude, gmap.CameraPosition.Zoom, Parametro.Bearing, 0)
cp.Initialize2(Parametro.Latitude, Parametro.Longitude, 15, Parametro.Bearing, 0)
gmap.AnimateCamera(cp)
End If
satelite.Bitmap = LoadBitmap(File.DirAssets, "s_on.png") ' si latitud o longitud es + de 0. pone el radar verde
Else
satelite.Bitmap = LoadBitmap(File.DirAssets, "s_off.png") ' si latitud o longitud es 0. pone el radar rojo
Dim cp As CameraPosition
' cp.Initialize2(Parametro.Latitude, Parametro.Longitude, gmap.CameraPosition.Zoom, Parametro.Bearing, 0)
cp.Initialize2(Parametro.Latitude, Parametro.Longitude, 15, Parametro.Bearing, 0)
gmap.AnimateCamera(cp)
End If
End Sub
Public Sub GpsStatus (Satellites As List)
Dim sb As StringBuilder
sb.Initialize
sb.Append("Satellites:").Append(CRLF)
For i = 0 To Satellites.Size - 1
Dim Satellite As GPSSatellite = Satellites.Get(i)
sb.Append(CRLF).Append(Satellite.Prn).Append($" $1.2{Satellite.Snr}"$).Append(" ").Append(Satellite.UsedInFix)
sb.Append(" ").Append($" $1.2{Satellite.Azimuth}"$).Append($" $1.2{Satellite.Elevation}"$)
Next
End Sub
Sub Activity_Resume
If Starter.GPS.GPSEnabled = False Then
ToastMessageShow("Por Favor, Activa el GPS.", True)
StartActivity(Starter.GPS.LocationSettingsIntent) 'Will open the relevant settings screen.
Else
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result Then CallSubDelayed(Starter, "StartGPS")
End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
CallSubDelayed(Starter, "StopGPS")
End Sub
#End Region
como ya digo, al cliente final el único error que aprecia es que se le cierra la aplicación al escoger mantener gps o otra. pero me tiene desconcertado, creo que es por que llamo en varios activitys al maps, pero no doy con la tecla.
Gracias