Hi I want to know how can I check permisions from the starter service or Wait for check all permissions.
I want to check permisision camera, fine location, read and write storage. But my crash.
All calls to the permissions are OK with exception of android.permission.WRITE_EXTERNAL_STORAGE and android.permission.READ_EXTERNAL_STORAGE.
My app crash when find the db file, before the permisions dialog show.
I test to set manual permission on Android settings and my app work fine the all other permissions work with problem.
My Manifest:
My Sub
Part of my Starter
Error log:
Line 489 on starter
I want to check permisision camera, fine location, read and write storage. But my crash.
All calls to the permissions are OK with exception of android.permission.WRITE_EXTERNAL_STORAGE and android.permission.READ_EXTERNAL_STORAGE.
My app crash when find the db file, before the permisions dialog show.
I test to set manual permission on Android settings and my app work fine the all other permissions work with problem.
My Manifest:
B4X:
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: http://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="26"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>
<uses-feature android:name="android.hardware.location.gps"/>)
'AddApplicationText(<meta-data
' android:name="com.google.android.gms.version"
' android:value="@integer/google_play_services_version" />)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:theme, "@android:style/Theme.Holo")
AddPermission(android.permission.PERMISSION_ACCESS_FINE_LOCATION)
AddPermission(android.permission.ACCESS_COARSE_LOCATION)
AddPermission(android.permission.CAMERA)
AddPermission(android.permission.READ_EXTERNAL_STORAGE)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)
AddPermission(android.permission.ACCESS_COARSE_LOCATION)
'AddManifestText(<uses-feature android:name="android.hardware.location.gps"/>)
SetApplicationAttribute(android:clearTaskOnLaunch, "true")
SetApplicationAttribute(android:largeHeap,"true")
SetApplicationAttribute(android:hardwareAccelerated, "true")
SetActivityAttribute(act_esquema, android:screenOrientation, "landscape")
'AddManifestText(
'<uses-permission
' android:name="android.permission.WRITE_EXTERNAL_STORAGE"
' android:maxSdkVersion="18" />
')
'End of default text.
My Sub
B4X:
Sub verificar_permisos
For Each permission As String In Array(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE, Starter.rp.PERMISSION_CAMERA, Starter.rp.PERMISSION_ACCESS_FINE_LOCATION, Starter.rp.PERMISSION_RECORD_AUDIO )
Starter.rp.CheckAndRequest(permission)
Wait For Activity_PermissionResult (permission As String, Result As Boolean)
If Result = False Then
ToastMessageShow("No permission!", True)
' Activity.Finish
Return
End If
Next
'we have permission!
End Sub
Sub Activity_PermissionResult (Permission As String, Result As Boolean)
If Permission = rp.PERMISSION_ACCESS_FINE_LOCATION Then
Else
' Credit for the following code to DonManfred
' rs= Msgbox2("You have not given permission - I can not proceed" ,"Permission Failure","Yes","Cancel","No",Null)
' If rs=DialogResponse.POSITIVE Then
' StopService(Starter)
' Activity.Finish
ExitApplication
Return True ' RETURN TRUE to consume the Event---
End If
End Sub
Part of my Starter
B4X:
If File.Exists(File.DirDefaultExternal, db_name) =True Then
functions.FileMove(File.DirDefaultExternal, db_name, Ruta_db, db_name)
SQL1.Initialize(Ruta_db, db_name, False)
Log("movemos DB anterior a la nueva ubicación")
Else if File.Exists(Ruta_db, db_name)= False Then
File.Copy(File.DirAssets, "db.db", Ruta_db, db_name)
SQL1.Initialize(Ruta_db, db_name, False)
Log("Copiamos DB del archivo de la APP a la nueva ubicación")
Else
'File.Copy(File.DirAssets, "db.db", File.DirDefaultExternal, db_name)
Log("DB Inicializada en la ruta nueva")
SQL1.Initialize(Ruta_db, db_name, False)
End If
Error log:
B4X:
Error occurred on line: 489 (Starter)
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.ref.WeakReference.get()' on a null object reference
Line 489 on starter
B4X:
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)