因此,我尝试使用新的 registerForActivityResult() 方法获得许可,并使用 .launch() 按钮单击请求,但它似乎没有打开任何窗口来请求它。我总是在 registerForActivityResult() 中出错。
// Permission to get photo from gallery, gets permission and produce boolean
private ActivityResultLauncher<String> mPermissionResult = registerForActivityResult(
new ActivityResultContracts.RequestPermission(),
new ActivityResultCallback<Boolean>() {
@Override
public void onActivityResult(Boolean result) {
if(result) {
Log.e(TAG, "onActivityResult: PERMISSION GRANTED");
} else {
Log.e(TAG, "onActivityResult: PERMISSION DENIED");
}
}
});
// Launch the permission window -- this is in onCreateView()
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPermissionResult.launch(Manifest.permission.ACCESS_BACKGROUND_LOCATION);
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的日志:onActivityResult: PERMISSION DENIED