android - fragment 权限

标签 android android-fragments android-permissions

我查看了有关 Android 权限的其他问题。但我仍然没有得到fragment的解决方案。为什么没有出现权限对话框?此外,它不显示任何错误日志。它只是没有出现。

我不想使用 FragmentCompat,因为它需要导入 android.app.Fragment

这是我的最低 sdk 版本。 minSdkVersion 16

 import android.support.v4.app.Fragment;


 public class ComplaintFragment extends Fragment implements View.OnClickListener {

    private void StartCamera(){
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        requestPermissions(new String[]{Manifest.permission.CAMERA}, PERMISSIONS_CAMERA);
     }
     else {OpenCamera();}
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if(ActivityCompat.checkSelfPermission(getActivity(), permissions[0]) == PackageManager.PERMISSION_GRANTED) {

        switch (requestCode) {
            case PERMISSIONS_CAMERA:
                OpenCamera();
                break;
        }
     }
  }

}

最佳答案

试试这个,

1) 在 list 中授予相机权限。

<uses-permission android:name="android.permission.CAMERA" />

2) 检查权限是否被授予。

if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
       requestPermissions(new String[]{android.Manifest.permission.CAMERA},1);
                                return;
                            } else {
                                oprnCamere();
                            }

3) 在 fragment 类的 onActivityResult() 方法中处理请求权限的结果。

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case 0: {
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    //permission accepted.
                    openCamera()
                } else {
                    //permission denied.
                }
                return;
            }
        }
    }

关于android - fragment 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40478707/

相关文章:

java - 使上传的图像在布局/Activity 更改后保留

android - 为什么会调用fragment的onCreateView、onCreate、onActivityCreated

android - 当前使用的布局是横向还是纵向?

android - 从任意 SD 卡文件夹中读取

android - java.lang.RuntimeException : start failed 错误

android - 在Android中授予应用程序权限时是否有可能获得回调

android - Samsung S3 和 S4 (4.2.2+) 的应用程序 UI 问题

具有离线 map 和数据库的 Android 应用程序

java - Android ListView 适配器无法与 Parse SDK 一起使用

java - MPAndroidChart 未在 fragment 中显示