精华内容
下载资源
问答
  • Andriod7.0获取手机权限

    千次阅读 2017-08-31 11:09:49
    Andriod7.0获取手机权限大家好,这是我写的第二篇 博客,哈哈,希望能帮到需要帮助的人,写的不好,也希望能请大家给我指出,谢谢!正如我们所知,安卓中添加权限,一般都是在 这里面写上 但是现在7.0的手机,...

    Andriod7.0获取手机权限

    大家好,这是我写的第二篇 博客,哈哈,希望能帮到需要帮助的人,写的不好,也希望能请大家给我指出,谢谢!

    正如我们所知,安卓中添加权限,一般都是在
    这里写图片描述
    这里面写上

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

    但是现在7.0的手机,对于一些隐私权限不会直接触发允许功能,所以就需要我们在界面的首页自动去向用户请求获取相应权限。

      @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            switch (requestCode){
                case 123:
                    List<String> denied = new ArrayList<String>();
                    for (int i = 0; i < permissions.length; i++){
                        if(grantResults[i] == PackageManager.PERMISSION_DENIED){
                            denied.add(permissions[i]);
                        }
                    }
                    onPermission(denied.toArray(new String[denied.size()]));
                    break;
            }
        }

    首先重写onRequestPermissionsResult()这个方法,这里面我用到String[] permissions,是因为获取的不止一个权限,所以就用数组放在一起。

     private void onPermission(String[] strings) {
            if (strings.length > 0){
                Toast.makeText(this, "访问需要获取电话和存储权限!",Toast.LENGTH_LONG).show();
                return;
            }
            if(new SMTools(this).getIMSI()==null){
                MyApplication.IMEI = new SMTools(this).getIMEI();
            }else{
                MyApplication.IMEI = new SMTools(this).getIMSI();
            }
            Tools.getInstance().setImsi(new SMTools(this).getIMSI());
            Tools.getInstance().setImei(new SMTools(this).getIMEI());
    
        }

    这里我要获取的是本地IMSI和IMEI号。

    private void getPermission(){
            String[] permissions = {Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
            List<String> permissionsList = new ArrayList<String>();
            for (int i = 0; i < permissions.length; i++){
                if (ActivityCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {
                    permissionsList.add(permissions[i]);
                }
            }
            if (permissionsList.size() > 0){
                ActivityCompat.requestPermissions(this, permissionsList.toArray(new String[permissionsList.size()]), 123);
            }else {
                onPermission(new String[]{});
            }
        }

    在app进去的界面中,调用这个方法,会先判断有没有获取到所想要的东西,如果没有就会请求允许界面,不是7.0的系统能够获取到权限,那自然就不需要再走这个方法。

    刚刚跟朋友说 朋友说需要用到support-v4这个jar包
    我这里用的是 compile ‘com.android.support:support-v4:25.3.1’

    好了就到这,希望能对你有所帮助,谢谢!

    展开全文
  • vivo手机权限禁止–跳转至对应app的权限设置页面 开始我用的这个方法在vivo 酷派,oopo上:(在vivo上已不能使用) private void doStartApplicationWithPackageName(String packagename) { // 通过包名获取此APP...

    vivo手机权限禁止–跳转至对应app的权限设置页面

    	开始我用的这个方法在vivo 酷派,oopo上:(在vivo上已不能使用)
    

    private void doStartApplicationWithPackageName(String packagename) {
    // 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等
    PackageInfo packageinfo = null;
    try {
    packageinfo = mContext.getPackageManager().getPackageInfo(packagename, 0);
    } catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
    }
    if (packageinfo == null) {
    return;
    }
    // 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent
    Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
    resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    resolveIntent.setPackage(packageinfo.packageName);
    // 通过getPackageManager()的queryIntentActivities方法遍历
    List resolveinfoList = mContext.getPackageManager()
    .queryIntentActivities(resolveIntent, 0);
    Log.e(“PermissionPageManager”, “resolveinfoList” + resolveinfoList.size());
    for (int i = 0; i < resolveinfoList.size(); i++) {
    Log.e(“PermissionPageManager”, resolveinfoList.get(i).activityInfo.packageName + resolveinfoList.get(i).activityInfo.name);
    }
    ResolveInfo resolveinfo = resolveinfoList.iterator().next();
    if (resolveinfo != null) {
    // packageName参数2 = 参数 packname
    String packageName = resolveinfo.activityInfo.packageName;
    // 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packageName参数2.mainActivityname]
    String className = resolveinfo.activityInfo.name;
    // LAUNCHER Intent
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    // 设置ComponentName参数1:packageName参数2:MainActivity路径
    ComponentName cn = new ComponentName(packageName, className);
    intent.setComponent(cn);
    try {
    if (mContext.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
    mContext.startActivity(intent);
    }
    } catch (Exception e) {
    goIntentSetting();
    e.printStackTrace();
    }
    }
    }

    下面这个方法完全满足需求
     /**
         * 
         * @param context  跳转至权限页面
         *       
         */
    	private static void goVivoManager(Context context) {
        Intent localIntent;
        if (((Build.MODEL.contains("Y85")) && (!Build.MODEL.contains("Y85A"))) || (Build.MODEL.contains("vivo Y53L"))) {
            localIntent = new Intent();
            localIntent.setClassName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.PurviewTabActivity");
            localIntent.putExtra("packagename", context.getPackageName());
            localIntent.putExtra("tabId", "1");
            context.startActivity(localIntent);
        } else {
            localIntent = new Intent();
            localIntent.setClassName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.SoftPermissionDetailActivity");
            localIntent.setAction("secure.intent.action.softPermissionDetail");
            localIntent.putExtra("packagename", context.getPackageName());
            context.startActivity(localIntent);
        }
    }
    
    展开全文
  • 手机权限分组之类的就不说了,百度一大堆。 android权限, 勾选或者直接在清单文件中写: 首先由于android6.0以后使用动态权限,在xamarin.android中生成目标版本的选择对权限影响就比较大了。 之前我对...

    手机权限分组之类的就不说了,百度一大堆。

    android权限, 勾选或者直接在清单文件中写:

     

    首先由于android6.0以后使用动态权限,在xamarin.android中生成目标版本的选择对权限影响就比较大了。

    之前我对目标版本的概念不是很清楚,暂时的情况是:

    1. 选择利用SDK版本的编译,生成的包安装起来后应该是低于6.0版本的。

    声明的权限会在app安装时直接赋予(如果用户不同意,无法安装app)。如果用户通过手机手动禁用了某些权限,则软件可能无法启动或奔溃。

    2. 选择了6.0以上的版本进行生成,安装后权限不会直接赋予,需要app在运行过程中动态请求用户赋予权限。对于开发来说比较麻烦。我们现在为了快速开发,没有采用此方法,不同厂家不同机型对于动态权限的处理可能会有差异,后续有空我会对这个进行进一步测试。

    3. 一个程序覆盖安装和升级,无法对旧包声明过的权限进行任何修改,但是新包可以增加新的权限。我这次碰到的主要问题就是这个,第一次安装的时候用的8.0版本生成,导致安装后默认没有赋予权限,使用动态获取的时候在小米手机上请求权限的时候没反应,查了半天原因,无果。后面对比以前的工程,利用sdk版本生成重新安装后,因为无法重新获旧包的权限,导致程序一直无法运行,最后修改包名,新安装,就自动赋予了权限。

    4. 有一个情况需要进行说明,安卓8.0生成的包,在测试程序升级时,下载完安装包,进行安装时出现异常,FileUriExposedException 。大概参考 https://www.cnblogs.com/zhujiabin/p/7840487.html  。当然在xamarin中需要做转换了,后续再做。

    待续...

     

     

     

    展开全文
  • Android Studio 获取手机权限

    千次阅读 2019-10-15 17:07:05
    app的build.gradle文件添加一行: ... //获取权限,自动弹出确认框 implementation 'com.mylhyl:acp:1.2.0' } //获取权限 Acp.getInstance(this).request(new AcpOptions.Builder().setPermissions ...

    app的build.gradle文件添加一行:

    dependencies {
        //获取权限,自动弹出确认框
        implementation 'com.mylhyl:acp:1.2.0'
    }

     

    //获取权限
            Acp.getInstance(this).request(new AcpOptions.Builder().setPermissions
                            (
                                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
                                    Manifest.permission.READ_PHONE_STATE,
                                    Manifest.permission.RECORD_AUDIO
                            ).build(),
                    new AcpListener() {
                        @Override
                        public void onGranted() {
                            //到这儿表示,全部的权限都能支持了
                            println("init base log activity succeed");
                        }
    
                        @Override
                        public void onDenied(List<String> permissions) {
                            println("Error:Please accept the permission require");
                        }
                    });

     

    展开全文
  • 在小米手机,怎么获取某项功能是否开启权限呢?在权限拒绝的情况下,ContextCompat.checkSelfPermission怎么返回的依然是PackageManager.PERMISSION_GRANTED呢?
  • Android Runtime Permission1,运行时权限说明: Android运行时权限,是Android6.0新加的功能点。当我们想要把我们的app适配到6.0 以及以上的时候,我们需要对运行时权限做些操作,否则很容易会造成程序崩溃,当我们...
  • 动态的开启手机权限(获取位置权限)

    千次阅读 2016-12-07 09:34:47
    因此需要开发者去判断用户手机是否高于6.0,或者api23,如果高于的话就让用户自己去开启权限,代码包含一个封装的工具类.你也可以添加其他权限的信息.还有一个就是activity 工具类: public c
  • Android Studio打开手机权限

    千次阅读 2020-10-06 00:29:41
    解决方法 最主要的自己手动动态打开权限,就像是下载一个APP,安装好,手机提示是否允许APP打开读取设备照片,文件权限,然后自己调试下运行代码,已经解决,手机响起《第十套广播体操》,目前的问题就算解决了,...
  • 关于手机权限被拒绝的问题

    千次阅读 2019-06-21 10:51:43
    我们在运行APP的时候,客户不小心或者故意拒绝了手机访问权限,这样就会导致我们有些功能无法实现。下面我就来说一下我的思路 在我们的权限被拒绝的时候,我们要让客手机直接跳转到系统的设置页面,让他们勾选 ...
  • iOS 手机权限的获取

    千次阅读 2017-03-14 22:53:01
    麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?相册权限: Privacy - Photo Library Usage ...
  • android6.0手机权限问题

    千次阅读 2016-10-09 13:16:28
    今天测试提了一个头像上传失败的bug,让我郁闷很久!我的手机明明就可以成功,为什么他的失败。然後拿测试的手机过来调试 , 发现他用到时6.0系统 . 断点调试 , 抛了个异常,读取文件失败 .
  • Android提示用户获取相应手机权限

    万次阅读 2018-02-10 14:54:33
    一,简介Android 6.0 为了保护用户隐私,将一些权限的申请放在了应用运行的时候去申请, 比如以往的开发中,开发人员只需要将需要的权限在清单文件中配置即可,安装后用户可以在设置中的应用信息中看到:XX应用以...
  • RN中手机权限的获取

    2020-04-26 17:53:55
    } /** 个别种类的手机获取相册的时候需要此权限,例如 有些 小米手机**/ function externalPermission() { return NativeModules.PermissionManager.externalPermission(); } export default { cameraPermission, ...
  • 无需ROOT卸载手机自带软件—— Android篇 1、什么 是root??? Root,也称为根用户,是Unix(如Solaris、AIX、BSD)和类UNIX系统(如Linux、QNX等),及Android和iOS移动设备系统中的唯一的超级用户,因其可对根目录执行...
  • 华为手机权限开启方法4

    千次阅读 2017-01-01 15:08:28
    华为手机最好打开系统的 手机管家 → 受保护应用,把我软件勾选上。
  • 锤子手机权限开启方法

    千次阅读 2017-01-02 00:49:09
    图片中的软件名称只是举例,请对应设置你使用中的软件
  • 三星手机权限开启方法

    千次阅读 2017-01-05 22:59:38
    图片中的软件名称只是举例,请对应设置你使用中的软件
  • vivo手机权限开启方法3.0

    万次阅读 2017-01-01 14:47:06
    vivo手机最好打开系统设置 → 电池 → 后台高耗电,把这软件勾选上。
  • 360手机权限开启方法

    千次阅读 2017-01-01 17:20:46
    图片中的软件名称只是举例,请对应设置你使用中的软件
  • vivo手机权限开启方法2.5

    千次阅读 2017-01-01 14:45:18
    vivo手机最好打开 i管家 → 省电管理 → 后台高耗电,把这软件勾选上。
  • oppo手机权限开启方法3.0

    千次阅读 2017-01-01 14:40:49
    oppo手机最好打开系统设置 → 电池 → 耗电保护,把这软件的后台冻结和自动优化关闭掉。
  • oppo手机权限开启方法3.1

    千次阅读 2017-09-19 15:26:07
    图片中的软件名称只是举例,请对应设置你使用中的软件
  • 华为手机权限开启方法5

    千次阅读 2017-09-16 16:07:26
    图片中的软件名称只是举例,请对应设置你使用中的软件
  • 三星手机权限开启方法新

    千次阅读 2017-09-18 16:08:19
    图片中的软件名称只是举例,请对应设置你使用中的软件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,443
精华内容 6,177
关键字:

手机权限