我已经开始研究Android M运行时权限了.在这里,我面临的问题是,如果requestPermissions从Dialog Fragment类中调用,则onRequestPermissionsResult不会在同一个Dialog fragment类中调用.但是如果requestPermissions从Activity类或Fragment类onRequestPermissionsResult调用,则在同一个类中调用方法.
这是我的示例代码:
public class ContactPickerDialog extends DialogFragment {
private static final int READ_CONTACTS_REQUEST_CODE = 12;
private Context mContext;
private void loadContact() {
if(hasPermission(mContext, Manifest.permission.READ_CONTACTS)){
new ContactSyncTask().execute();
} else {
this.requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, READ_CONTACTS_REQUEST_CODE);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
Logger.d("TAG", "dialog onRequestPermissionsResult");
switch (requestCode) {
case READ_CONTACTS_REQUEST_CODE:
// Check Permissions Granted or not
if (grantResults[0] == …Run Code Online (Sandbox Code Playgroud) android android-fragments android-dialogfragment android-6.0-marshmallow