My app needs below permissions. Which has been incorporated in AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.autofocus"/>
After upgrading to API 26
(targetSdkVersion 26)
Some functionality is not working. As I need to incorporate runtime permission. I am using RxPermission .
The problem is my most of the implementations are placed in helper class(not inside main activity).
when I am trying to use helper library getting error - . I have tried with the following options too -
I have tried with the following options too -
RxPermissions rxPermissions = new RxPermissions((FragmentActivity) mContext);
As RxPermission require Fragment as target.Can we ask user all the permission in the main activity? A sample code will help me. Project code for reference
[Fixed] Now I am calling from the activity. ReferenceCode changed -
RxPermissions rxPermissions=new RxPermissions(this);
rxPermissions.request(Manifest.permission.CAMERA)
        .subscribe(granted -> {
            if (granted) {
                //LogUtil.e(LOG_TAG, "Granted external permission");
                setContentView(R.layout.activity_local_album);
                ViewGroup backGround = (ViewGroup) findViewById(R.id.background);
                MyUtil.setBackgroundBlur(backGround, this);
                initAdapter();
                assignViews();
            } else {
                // Oups permission denied
            }
        });
[New error]
I am getting  android.os.FileUriExposedException: error. Code: 
public void onClick(View v) {
    switch (v.getId()) {
        // 返回
        case R.id.action_back:
            myFinish();
            break;
        // 拍照
        case R.id.action_capture:
            PackageManager pm = getPackageManager();
            // FEATURE_CAMERA - 后置相机
            // FEATURE_CAMERA_FRONT - 前置相机
            if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) {
                // 访问相机类型
                int requestType;
                // 截取主题壁纸
                if (mRequestType != 2) {
                    requestType = REQUEST_IMAGE_CAPTURE_THEME;
                } else { // 截取二维码logo
                    requestType = REQUEST_IMAGE_CAPTURE_QRCODE_LOGO;
                }
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                mImageUri = Uri.fromFile(MyUtil.getFileDirectory(this, "/Android/data/" +
                        getPackageName() + "/capture/temporary.jpg"));
                intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
                startActivityForResult(intent, requestType);
                overridePendingTransition(0, R.anim.zoomin);
            }
Error
 Process: com.bisw.weac, PID: 20997
android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.bisw.weac/capture/temporary.jpg exposed beyond app through ClipData.Item.getUri()
    at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
    at android.net.Uri.checkFileUriExposed(Uri.java:2356)
    at android.content.ClipData.prepareToLeaveProcess(ClipData.java:944)
    at android.content.Intent.prepareToLeaveProcess(Intent.java:10480)
    at android.content.Intent.prepareToLeaveProcess(Intent.java:10465)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
    at android.app.Activity.startActivityForResult(Activity.java:4564)
    at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:68)
    at android.app.Activity.startActivityForResult(Activity.java:4522)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:751)
    at com.bisw.weac.activities.LocalAlbumActivity.onClick(LocalAlbumActivity.java:222)
    at android.view.View.performClick(View.java:6877)
    at android.widget.TextView.performClick(TextView.java:12651)
    at android.view.View$PerformClick.run(View.java:26069)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6938)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
 
    