下面的代码在活动中运行良好,但我不能使它在片段中工作。
从不调用OnRequestPermissionsResult
。
public class MyFragment extends Fragment {
final int REQUEST_CODE = 120;
@Override
public View onCreateView(LayoutInflater infl, ViewGroup cont, Bundle bundle) {
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
Log.i("LOG", "Asking for permission right now..");
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_CODE);
//This is working but needs API level 23 (Android 6.0) - How to make this work on Android 5.0?
//requestPermissions( new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_CODE);
}
return super.onCreateView(infl, cont, bundle);
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
Log.i("LOG", "onRequestPermissionsResult!");
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.i("LOG", "GRANTED");
Toast.makeText(getActivity(), "GRANTED,", Toast.LENGTH_LONG).show();
} else {
Log.i("LOG", "REFUSED");
Toast.makeText(getActivity(), "REFUSED,", Toast.LENGTH_LONG).show();
}
}
}
}
在宿主活动的onRequestPermissionResult内部调用Fragment.onRequestPermissionResult。
我有一个片段,其中有recyclerview,并使用recyclerview适配器在这个recyclerview中设置数据。 现在,我在适配器的列表项中单击了一个按钮,我需要检查android中的READ\u EXTERNAL\u STORAGE权限,以查看android中的新权限模型。 我在这个适配器的片段中创建了一个新函数,用于检查是否授予了权限,如果尚未授予权限,则请求权限。 我已经通过了我
在我的非活动类中,我请求了一个Fine location权限,但回调onRequestPermissionsResult“永远不会被调用”。现在我看到了一些与此相关的问题,但他们都认为请求是从活动或片段发出的,没有人考虑从非活动类发出请求。这是我的代码 这是onRequestPermissionResultCallback方法的实现 解决了:正如一些人提到的“activity”的onRequest
我有一个片段,其中我有RecolyerView和使用RecolyerView适配器在这个RecolyerView中设置数据。 现在,我在适配器的列表项中有一个按钮,单击该按钮,我需要检查android中的READ_EXTERNAL_STORAGE权限,以获取android中的新权限模型。 我在这个适配器的片段中创建了一个新函数来检查权限是否被授予,如果还没有授予,则请求权限。 我已经使用下面的代码
在我活动页面之一的片段中,我希望从用户处获得权限,并在授予权限后执行一些操作,但不起作用,且在授予权限后看不到任何日志
嗨,我在主片段内使用带有碎片网的viewPager。我试图从画廊或相机中获取图像到位图,但在选择照片并启动ActivityForResult后,它不会在onActivityResult中捕获... 以下是我如何调用startActivityForResult: 这是我的onActivityResult: 有什么想法吗?
然后权限委托类处理权限逻辑: 这段代码工作得非常好,直到我强制流程死亡(我在开发人员工具中选择了Don't keep activities复选框)。之后,我从后台返回,权限对话框仍然存在(因为onCreate再次被触发,权限检查再次被执行)。 问题是,在我按下permission对话框中的任何按钮后,onRequestPermissionsResult方法不会在片段中被触发。我查看了logcat,