Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在RecyclerView的适配器中获取运行时权限?请看详情_Android_Android Recyclerview_Android 6.0 Marshmallow_Android Permissions_Fastadapter - Fatal编程技术网

Android 如何在RecyclerView的适配器中获取运行时权限?请看详情

Android 如何在RecyclerView的适配器中获取运行时权限?请看详情,android,android-recyclerview,android-6.0-marshmallow,android-permissions,fastadapter,Android,Android Recyclerview,Android 6.0 Marshmallow,Android Permissions,Fastadapter,我正在开发一个应用程序,在该应用程序中,我需要以下运行时权限才能启动服务: @TargetApi(Build.VERSION_CODES.M) public void startFloatyForAboveAndroidL() { if (!Settings.canDrawOverlays(this)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,

我正在开发一个应用程序,在该应用程序中,我需要以下运行时权限才能启动服务:

@TargetApi(Build.VERSION_CODES.M)
    public void startFloatyForAboveAndroidL() {
        if (!Settings.canDrawOverlays(this)) {
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + getPackageName()));
            startActivityForResult(intent, PERMISSION_REQUEST_CODE);
        } else {
            floaty.startService();
        }
    }


    @TargetApi(Build.VERSION_CODES.M)
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (Settings.canDrawOverlays(this)) {
                floaty.startService();
            } else {
                Spanned message = Html.fromHtml("Please allow this permission, so <b>Floaties</b> could be drawn.");
                Toast.makeText(this, message, Toast.LENGTH_LONG).show();
            }
        }
请让我知道我如何在何处以及如何编写此代码以请求许可并防止应用程序在Android M上崩溃

我正在开发一个应用程序,我需要以下运行时权限才能启动服务

从技术上讲,这不是运行时权限,尽管您需要该代码或类似的东西

我不知道在哪里写这段代码


我会在填充
RecyclerView
之前执行此操作。例如,当用户启动活动时,如果您没有权限,则显示设置屏幕,并仅在您有权限后在
RecyclerView
上设置适配器。

您绝对不应该从适配器运行服务class@R.Kirill你也能看看这个吗:谢谢你的回答。你也能看一下这个吗:拜托???:/
public class HRequest extends AbstractItem<HRequest, HRequest.ViewHolder> {

        public String imageURL;

        public HRequest() {

        }

        public HRequest(String imageURL) {
            this.imageURL = imageURL;
        }

        // Fast Adapter methods
        @Override
        public int getType() {
            return R.id.recycler_view;
        }
        @Override
        public int getLayoutRes() {
            return R.layout.h_request_list_row;
        }
        @Override
        public void bindView(ViewHolder holder) {
            super.bindView(holder);

            holder.imageURL.setText(imageURL);

        }
        // Manually create the ViewHolder class
        protected static class ViewHolder extends RecyclerView.ViewHolder {

            TextView imageURL;

            public ViewHolder(View itemView) {
                super(itemView);
                imageURL = (TextView)itemView.findViewById(R.id.imageURL);

if (!imageURL.getText().toString().isEmpty()) {

if (imageURL.getText().toString().startsWith("https://firebasestorage.googleapis.com/") || imageURL.getText().toString().startsWith("content://")) {
                    Picasso.with(itemView.getContext())
                            .load(imageURL.getText().toString())
                            .into(homelessImage);
                } else {
                    Toast.makeText(itemView.getContext(), "some problem", Toast.LENGTH_SHORT).show();
                }

            } else {
                Toast.makeText(itemView.getContext(), "no imageUID found", Toast.LENGTH_SHORT).show();
            }

            }
        }

    }