Android Question [SOLVED] RuntimePermissions CheckAndRequest

lemonisdead

Well-Known Member
Licensed User
Longtime User
Hello,
Please could someone correct me : I am entering a loop while using CheckAndRequest. I never see the Request.

Status: false
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
sending message to waiting queue (activity_permissionresult)
running waiting messages (1)
Status: false

Attached the smallest project which code is below.
B4X:
#Region  Project Attributes 
    #ApplicationLabel: CheckRT
    #VersionCode: 1
    #VersionName: 
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region
#Region  Activity Attributes 
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Private RT As RuntimePermissions
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("Layout1")
   
End Sub

Sub Activity_Resume
    If Not(RT.Check(RT.PERMISSION_ACCESS_COARSE_LOCATION)) Then
        CheckRT
    End If
End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Sub CheckRT
    RT.CheckAndRequest(RT.PERMISSION_ACCESS_COARSE_LOCATION)
    Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
    Log($"Status: ${RT.Check(RT.PERMISSION_ACCESS_COARSE_LOCATION)}"$)
End Sub

The testing device is Motorola E4 Plus (XT1771), Android 7.1.1
B4A 8.0
 

Attachments

  • checkRT.zip
    8.1 KB · Views: 293

DonManfred

Expert
Licensed User
Longtime User
Add this line to your manifesteditor (it tells the system the need for the permission.

B4X:
AddPermission(android.permission.ACCESS_COARSE_LOCATION) ' Allows an app to access approximate location derived from network location sources such as cell towers and Wi-Fi.

After this line is added i get a permissionrequest showing and the result is true after i accept it.
 
Upvote 0

lemonisdead

Well-Known Member
Licensed User
Longtime User
Thanks Manfred. You are the best (and me the poor one who turned around having forgotten the main). :)
 
Upvote 0
Top