androidx的requestPermissionLauncher导致java.lang.IllegalArgumentException异常:请求代码(requestCode)只能使用低16位。
创始人
2024-10-12 11:32:35
0

在使用androidx的requestPermissionLauncher时,如果出现java.lang.IllegalArgumentException异常并提示“请求代码(requestCode)只能使用低16位”,则表示requestCode超过了16位。

解决方法如下:

  1. 确保requestCode的值不超过16位。通常情况下,我们可以使用一个唯一的常量来作为requestCode,例如:
private static final int MY_PERMISSIONS_REQUEST = 1;
  1. 如果你的requestCode确实超过了16位,可以使用位运算符“&”来将其限制在16位以内。例如:
private static final int MY_PERMISSIONS_REQUEST = 123456789;
private static final int REQUEST_MASK = 0xffff;

private ActivityResultLauncher requestPermissionLauncher =
    registerForActivityResult(new ActivityResultContracts.RequestPermission(), result -> {
        if (result) {
            // 权限已授予
        } else {
            // 权限被拒绝
        }
    });

public void requestPermission() {
    requestPermissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE,
            MY_PERMISSIONS_REQUEST & REQUEST_MASK);
}

通过将requestCode与REQUEST_MASK进行位运算,可以确保requestCode不超过16位。

请注意,如果你使用的是旧版的Support库(例如:android.support.v4.app.FragmentActivity),你需要将ActivityResultLauncher替换为ActivityCompat.OnRequestPermissionsResultCallback,并使用位运算符将requestCode限制为16位。

相关内容

热门资讯

透视规律!德普之星透视辅助软件... 透视规律!德普之星透视辅助软件,德普之星透视免费(透视)都是真的有挂(有挂教学)-哔哩哔哩暗藏猫腻,...
今天上午!逸趣鄱阳翻精辅助,w... 今天上午!逸趣鄱阳翻精辅助,wepoker正确养号方法,总结教程(有挂解惑)-哔哩哔哩1、每一步都需...
透视总结!德普之星透视辅助软件... 透视总结!德普之星透视辅助软件激活码,德普之星透视辅助软件激活码(透视)其实真的有挂(有挂存在)-哔...
有了最新消息!新星游挂多少钱,... 有了最新消息!新星游挂多少钱,wpk模拟器是什么,攻略教程(有挂教学)-哔哩哔哩1、玩家可以在wpk...
透视总结!德普之星辅助软件,德... 透视总结!德普之星辅助软件,德普之星透视(透视)切实真的有挂(有挂猫腻)-哔哩哔哩德普之星辅助软件能...
据相关数据显示!闲逸透视app... 据相关数据显示!闲逸透视app下载安装,线上德州的辅助器是什么,举措教程(有挂教程)-哔哩哔哩运线上...
透视好友房!德扑圈透视,德普之... 透视好友房!德扑圈透视,德普之星有辅助软件吗(透视)一贯存在有挂(有挂解密)-哔哩哔哩1、不需要AI...
长期以来!新天道破解版,wep... 长期以来!新天道破解版,wepoker私人局有透视吗,诀窍教程(有挂讲解)-哔哩哔哩1、实时wepo...
透视辅助!德普之星辅助工具如何... 透视辅助!德普之星辅助工具如何打开,德普之星透视软件免费入口官网(透视)切实真的是有挂(有挂细节)-...
据相关数据显示!新上游修改器,... 据相关数据显示!新上游修改器,财神十三张安装工具,烘培教程(有挂解惑)-哔哩哔哩1、财神十三张安装工...