I just wanted to know if there is a way to request runtime permission from a dialog since the requestPermission()
function is not available there.
I already tried to use the context
to call this function, but it does not work either
Yes you can
public class PermissionDialog extends Dialog {
private Activity mActivity;
public PermissionDialog(@NonNull Context context) {
super(context);
mActivity = (Activity) context;
}
public void requestPermission() {
if (mActivity != null) {
if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.YOUR_PERMISSION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.YOUR_PERMISSION}, YOUR_PERMISSION_REQUEST_CODE);
}
}
}
}
public class MainActivity extends AppCompatActivity {
private PermissionDialog mPermissionDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ...
mPermissionDialog = new PermissionDialog(this);
showDialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPermissionDialog.requestPermission();
}
});
}
}