精华内容
下载资源
问答
  • 怎么手动开启权限
    2021-10-17 17:53:21

    先在你MainActivity的onCreate中设置如下代码,上下文指向MainActivity,当然你也可以设置在别的Activity中,那么上下文就指向当前Activity

    ActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.READ_CONTACTS}, 1);
    

    接着再在AndroidManifest设置如下代码

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

    然后android就能动态申请权限了,当然这只是其中一种方法,肯定还有其它的,可以自行去搜其他大佬们的博客。

    更多相关内容
  • Android权限一般是在AndroidManifest.xml中声明,在安装或首次使用的时候系统会自动提示用户是否提供权限Android官方文档:Then, when the application is installed on the device, the installer determines ...

    Android权限一般是在AndroidManifest.xml中声明,在安装或首次使用的时候系统会自动提示用户是否提供权限

    Android官方文档:

    Then, when the application is installed on the device, the installer determines whether or not to grant the requested permission by checking the authorities that signed the application's certificates and, in some cases, asking the user. If the permission is granted, the application is able to use the protected features. If not, its attempts to access those features will simply fail without any notification to the user.

    但有时候因为手机设备等原因,并没有在一开始就弹出提示框让用户确认是否提供权限,对于有些权限,不确认的话就不提供权限,因此,有些功能就无法实现。

    这时候需要我们手动检查是否已经拥有权限,没有的话就调用代码提示用户提供权限。

    如何手动检查并申请权限

    如:在写入之前检查是否有WRITE_EXTERNAL_STORAGE权限,没有则申请权限

    代码:

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)

    != PackageManager.PERMISSION_GRANTED) {

    //申请WRITE_EXTERNAL_STORAGE权限

    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},

    WRITE_EXTERNAL_STORAGE_REQUEST_CODE);

    }

    请求权限后,系统会弹出请求权限的Dialog,允许即可

    用户选择允许或拒绝后,会回调onRequestPermissionsResult方法, 该方法类似于onActivityResult

    @Override

    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    doNext(requestCode,grantResults);

    }

    PS:

    在Android6.0,有些权限只需要在AndroidManifest.xml文件中声明即可,但有些除了声明以外,还需要在运行时判断,即用户确认,需要确认的权限如下:

    身体传感器

    日历

    摄像头

    通讯录

    地理位置

    麦克风

    电话

    短信

    存储空间

    Android6.0系统默认为targetSdkVersion小于23的应用默认授予了所申请的所有权限,

    所以如果你以前的APP设置的targetSdkVersion低于23,在运行时也不会崩溃,

    但这也只是一个临时的救急策略,用户还是可以在设置中取消授予的权限。

    以下权限只需要在AndroidManifest.xml中声明即可使用:

    android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

    android.permission.ACCESS_NETWORK_STATE

    android.permission.ACCESS_NOTIFICATION_POLICY

    android.permission.ACCESS_WIFI_STATE

    android.permission.ACCESS_WIMAX_STATE

    android.permission.BLUETOOTH

    android.permission.BLUETOOTH_ADMIN

    android.permission.BROADCAST_STICKY

    android.permission.CHANGE_NETWORK_STATE

    android.permission.CHANGE_WIFI_MULTICAST_STATE

    android.permission.CHANGE_WIFI_STATE

    android.permission.CHANGE_WIMAX_STATE

    android.permission.DISABLE_KEYGUARD

    android.permission.EXPAND_STATUS_BAR

    android.permission.FLASHLIGHT

    android.permission.GET_ACCOUNTS

    android.permission.GET_PACKAGE_SIZE

    android.permission.INTERNET

    android.permission.KILL_BACKGROUND_PROCESSES

    android.permission.MODIFY_AUDIO_SETTINGS

    android.permission.NFC

    android.permission.READ_SYNC_SETTINGS

    android.permission.READ_SYNC_STATS

    android.permission.RECEIVE_BOOT_COMPLETED

    android.permission.REORDER_TASKS

    android.permission.REQUEST_INSTALL_PACKAGES

    android.permission.SET_TIME_ZONE

    android.permission.SET_WALLPAPER

    android.permission.SET_WALLPAPER_HINTS

    android.permission.SUBSCRIBED_FEEDS_READ

    android.permission.TRANSMIT_IR

    android.permission.USE_FINGERPRINT

    android.permission.VIBRATE

    android.permission.WAKE_LOCK

    android.permission.WRITE_SYNC_SETTINGS

    com.android.alarm.permission.SET_ALARM

    com.android.launcher.permission.INSTALL_SHORTCUT

    com.android.launcher.permission.UNINSTALL_SHORTCUT

    以上这篇Android手动检查并申请权限方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • .setMessage("已禁用权限,请手动授予") .setPositiveButton("设置", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mPermissionDialog....
    private AlertDialog mPermissionDialog;
        private void showPermissionDialog() {
            if (mPermissionDialog == null) {
                mPermissionDialog = new AlertDialog.Builder(MainActivity.this)
                        .setMessage("已禁用权限,请手动授予")
                        .setPositiveButton("设置", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                mPermissionDialog.cancel();
                                Uri packageURI = Uri.parse("package:" + getPackageName());
                                Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI);
                                startActivity(intent);
                            }
                        })
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                mPermissionDialog.cancel();
                            }
                        })
                        .create();
            }
            mPermissionDialog.show();
        }

    展开全文
  • 这个问题在8.0系统的手机上不是必现的,这可能和手机厂商的系统处理有关,但是有一点是确定的:Google从Android8.0系统开始,关闭了未知应用安装权限,需要用户手动点开。 第一步:当APK下载完毕之后,正常来说要...

    在Android 8.0以上系统的手机上,会发现有部份手机,app下载完毕之后但是安装不上,也就是下载完毕之后,闪退。这个问题在8.0系统的手机上不是必现的,这可能和手机厂商的系统处理有关,但是有一点是确定的:Google从Android8.0系统开始,关闭了未知应用安装权限,需要用户手动点开。

    第一步:当APK下载完毕之后,正常来说要跳转到APK安装页面,但是8.0系统需要做一个判断:是否用户开启了应用安装权限。

           // 兼容Android 8.0
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                //先获取是否有安装未知来源应用的权限
                boolean haveInstallPermission = context.getPackageManager().canRequestPackageInstalls();
                if (!haveInstallPermission) {//没有权限
                    //TODO  去开启权限
                } else {
                    //TODO 安装APK
                }
            } else {
                //TODO 安装APK
            }

    第二步:如果没有就跳转到安装权限列表,然后从列表中找到我们的项目APP,跳转到我们的APP的设置安装权限页面:

        @RequiresApi(api = Build.VERSION_CODES.O)
        private void startInstallPermissionSettingActivity() {
            Uri packageURI = Uri.parse("package:" + getPackageName());
            //注意这个是8.0新API
            Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
            startActivityForResult(intent, UNKNOW_APP_SOURCE_CODE);
        }
    

    需要注意的是上面的getPackgeName() 这个一定要加。应为这句话就是表明直接跳转到我们APP的设置安装权限页面(不加的话,是跳转到APP设置权限列表页面)。
    UNKNOW_APP_SOURCE_CODE,这个变量就是开发者自己定义的了。

    第三步:在onActivityResult方法中,接受到是否获取权限成功,如果成功就跳转到直接安装APK。

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == UNKNOW_APP_SOURCE_CODE && resultCode == RESULT_OK) {
                //TODO 安装APK
            }
        }
    展开全文
  • 这里以小米和魅族作为示例讲解如何让用户手动打开权限,当然了如果是原声的android就让他跳转到应用的详情设置页面(有点坑,因为普通用户还是不知道怎么整)。 参考了很多零零碎碎的东西,网址已经找不到了。。。。。...
  • Android手动申请权限

    千次阅读 2018-08-03 10:07:48
    以获得地理位置权限为例 1.添加需要权限 //当Android6.0系统以上时,动态获取权限 private static final String[] PERMISSIONS = new String[]{ Manifest.permission.ACCESS_COARSE_LOCATION, Manifest....
  • 从 Android 6.0开始,新增了动态权限...之前发现的一个问题就是APP开启的时候,去设置中心开启或关闭一下相机权限,APP直接崩溃,崩溃信息提示的都是一些页面的空指针问题。因为我再application里面存了一些临时的数...
  • 已经添加了动态获取权限,其他权限都能够动态获取,只有存储权限不能。并且第一次必须手动打开存储权限才能进入App,否则无法打开。找了很久不知道哪里出现问题
  • 开启后就可以了,只是后台运行时会被提示后台耗电。哎!总算是找到一种解决办法。不过感觉这东西是不是又跟白名单有关,这就不知道了,喝茶...思考...。 如果有其他好的方法,希望猿友们。能在下面分享一波。接受...
  • 楼主的手机是华为P9搭载...查了一早上的资料,终于发现API 23(6.0)以上的手机需要手动去检测读取权限。并不会自动帮你检测,检测后可以确认是否允许应用可获得读写权限。若手机本身不允许该权限,就不会允许你读写数
  • 这里以授权地图权限为例子 /** 获取权限 * res.authSetting['scope.userLocation'] == undefined 表示 初始化进入该页面 res.authSetting['scope.userLocation'] == false 表示 非初始化进入该页面,且未...
  • Android权限开启最简单方法1

    千次阅读 2022-01-14 16:02:24
    最简单的实现权限申请 private static String[] PERMISSIONS_STORAGE = { ACCESS_COARSE_LOCATION,ACCESS_FINE_LOCATION,BLUETOOTH_ADMIN,BLUETOOTH,BLUETOOTH_CONNECT,BLUETOOTH_SCAN }; ActivityCompat....
  • 解决IIS没有访问文件的权限: 二、权限: 应用程序的用户如果没有访问数据库或网络的权限 1).在IIS管理器中 》应用程序池 》ASP.NET V4.0 》高级设置 》标识 》改为localSystem 不安全 2).Internet信息服务(IIS)管理...
  • Android判断某个权限是否开启的方法

    千次阅读 2021-06-09 07:52:06
    如下所示:/*** 读写权限 自己可以添加需要判断的权限*/public static String[]permissionsREAD={Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE };/*** 判断权限集合* ...
  • Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri1 = Uri.fromParts("package", AuthentActivity.this.getPackageName(), null); intent.setData(uri1);...
  • 当我们的用户使用App时不小心拒绝了某项必要权限,而导致无法正常使用。这时候希望重新去打开该权限,那么问题来了,Android厂家定制的room...经过一番研究,整理出了大部分国产手机直接打开权限管理界面的方法...
  • KUKA 机器人基本手动操作步骤 1、 总电源开关打开后,将机器人控制柜上的开关顺时针由"OFF"旋为"ON"的状 态。 2、 等待示教器正常开机,开机过程中示教器界面会发生如下变化: 正常开机示教器界面 3、示教器上有使能...
  • Android 权限-WiFi

    2021-06-02 14:50:13
    最新版本Sdk 23(andriod 6.0)以上,对于危险权限,需要用户手动申请。危险权限注意:扫描wifi需要定位权限,因为需要确定wifi的搜索位置。dangerous permissions运行时的权限申请主要用到如下几个API。Context....
  • react native 手动调起相机的权限 需要在 AndroidManifest.xml 里面添加权限 手动访问上代码,ios自动开启权限,只有安卓需要手动开启
  • Android判断某个权限是否开启

    万次阅读 2018-03-01 15:20:08
    /** 常用权限(可能不全) **/ // SMS(短信)// SEND_SMS // RECEIVE_SMS // READ_SMS // RECEIVE_WAP_PUSH // RECEIVE_MMS // STORAGE(存储卡-读写权限) // READ_EXTERNAL_STORAGE // WRITE_EXTERNAL_STORA...
  • 安卓 实现永久性开启adb 的root权限

    千次阅读 2021-06-05 03:02:18
    adb 的root 权限是在system/core/...默认即档ro.secure 为0 时,即开启root 权限,为1时再根据ro.debuggable 等选项来确认是否可以用开启root 权限。为此如果要永久性开启adb 的root 权限,有两种改的方式:1. 改sy...
  • 对于移动开发,我们知道Android 6.0之后对于权限管理做了很大的升级,其类似于IOS的管理管理方式需要用手动授权是否允许使用当前权限, 在RN开发中同样存在这样一个模块。 处理方法 在RN中提供了一个...
  • ios开发相机权限问题

    千次阅读 2020-12-19 12:22:50
    .]相机权限问题:iOS7之前都可以直接访问相机,但是从iOS7以后开始相机访问需要设置权限。具体代码如下:设置权限需要导入两个头文件:#######import #######import-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=--=-=-=-=...
  • 今天和大家分享一下win10系统打开共享文件时提示没有权限问题的解决方法,在使用win10系统的过程中经常不知道如何去解决win10系统打开共享文件时提示没有权限的问题,有什么好的办法去解决win10系统打开共享文件时...
  • 权限工具类

    2018-09-27 11:37:25
    封装了非常好用的权限工具类,如果用户第一次拒绝了权限申请,第二次申请时应向用户解释权限用途;如果用户勾选了“不再询问”选项,应引导用户去设置页手动开启权限
  • 这里只需要读写,因此只把读写加入进去,如果需要更多的权限,加入即可。 public class PermisionUtils { // Storage Permissions  private static final int REQUEST_EXTERNAL_STORAGE =1;  private static ...
  • 日常搬砖写Demo时,新建了一个工程,在写文件时发现提示Permission denied,然后把运行时权限加上,仍然提示denied,打开权限管理查看也已经打开了读写权限。排查了好一会儿终于了发现问题,记录一下。 Android10(29...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,548
精华内容 77,819
热门标签
关键字:

怎么手动开启权限