I have this simple code:
public class MainActivity externds AppCompatActivity {
final String[] PERMISSIONS = {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.BLUETOOTH_CONNECT
};
private ActivityResultLauncher<String[]> permission = registerForActivityResult(
new ActivityResultContracts.RequestMultiplePermissions(),
isGranted -> { System.out.println("PERMISSIONS - " + isGranted ); }
);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
permission.launch(PERMISSIONS);
binding.fab.setOnClickListener(new View.OnClickListener() { .... });
}
}
as I read somewhere about registerForActivityResult (due the old onRequestPermissionsResult is deprecated...) it should wait until user has completed grant/refuse permissions requests but in my debug it looks like it doesn't wait....shall I have missed something when I am threatening isGranted variable? Thanks in advance! Cheers! :-)