精华内容
下载资源
问答
  • 支持Android6.0系统手机打开权限获取手机唯一标识.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 到网上查了下解决方法,说是在配置文件加uid.system这个属性,然后再用系统的platform密钥文件对应用签名,这样得到的apk就可以调用系统权限了,可是搞了好久都不知道系统的platform文件怎么获取到,有哪位大神可以...
  • 相信做过Android的都知道,现在的手机系统五花八门,当我们去请求用户的权限的时候,总是会弹出是否允许的对话框。 而且用户一旦不小心点了拒绝,下次就不再询问了,而很多小白用户也不知道怎么去设置。这就导致了...

    相信做过Android的都知道,现在的手机系统五花八门,当我们去请求用户的权限的时候,总是会弹出是否允许的对话框。
    而且用户一旦不小心点了拒绝,下次就不再询问了,而很多小白用户也不知道怎么去设置。这就导致了很不好的用户体验。
    经过研究,我发现像小米,魅族,这些满大街的系统,都是可以通过隐式意图打开权限设置页面的。
    这里指的是自身app的权限管理页面
    之前已经有人写过类似的文章,不过都比较分散,我这里把这些方法总结了一下。
    不多说,直接上代码。
    首先是最蛋疼的小米,百度了很多前辈留下的方法,发现都不能打开,没有办法,只能通过 adb dumpsys activity activities 命令去查看
    经过一番研究终于打开了。

    /** 
     * 跳转到miui的权限管理页面 
     */  
    private void gotoMiuiPermission() {  
        Intent i = new Intent("miui.intent.action.APP_PERM_EDITOR");  
        ComponentName componentName = new ComponentName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");  
        i.setComponent(componentName);  
        i.putExtra("extra_pkgname", getPackageName());  
        try {  
            startActivity(i);  
        } catch (Exception e) {  
            e.printStackTrace();  
            gotoMeizuPermission();  
        }  
    }  

    接下来上魅族的代码

    /** 
     * 跳转到魅族的权限管理系统 
     */  
    private void gotoMeizuPermission() {  
        Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");  
        intent.addCategory(Intent.CATEGORY_DEFAULT);  
        intent.putExtra("packageName", BuildConfig.APPLICATION_ID);  
        try {  
            startActivity(intent);  
        } catch (Exception e) {  
            e.printStackTrace();  
            gotoHuaweiPermission();  
        }  
    }  

    华为的系统由于不太一样,有些系统是华为自己的权限管理,而6.0的是用的原生的权限管理页面,目前手上只有一台6.0的华为手机,
    暂时没有研究到打开的方法,如果有知道的大神麻烦告知一下
    不过打不开没关系,我们可以退而求其次,打开所用应用的权限管理页面

    /** 
     * 华为的权限管理页面 
     */  
    private void gotoHuaweiPermission() {  
        try {  
            Intent intent = new Intent();  
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
            ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");//华为权限管理  
            intent.setComponent(comp);  
            startActivity(intent);  
        } catch (Exception e) {  
            e.printStackTrace();  
            startActivity(getAppDetailSettingIntent());  
        }  
    
    }  

    目前也就研究了这三大系统,对于原生系统,和其他系统,如果找不到方法,也可以先把用户引导到系统设置页面

    /** 
     * 打开应用详情页面intent 
     */  
    private Intent gotoAppDetailSettingIntent() {  
        Intent localIntent = new Intent();  
        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
        if (Build.VERSION.SDK_INT >= 9) {  
            localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");  
            localIntent.setData(Uri.fromParts("package", getPackageName(), null));  
        } else if (Build.VERSION.SDK_INT <= 8) {  
            localIntent.setAction(Intent.ACTION_VIEW);  
            localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");  
            localIntent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());  
        }  
        startActivity(localIntent); 
    } 
    展开全文
  • Linux文件权限管理实验SEC-L01-002.1 Linux操作系统Linux ,是一类Unix计算机操作系统的统称 Linux操作系统的内核的名 字也是Linux Linux操作系统也是自由软件和开放源代码发展中最著名的例子 严格来讲Linux这个词...
  • android各大手机系统打开权限管理页面

    万次阅读 热门讨论 2016-08-17 10:15:23
    相信做过android的都知道,现在的手机系统五花八门,当我们去请求用户的权限的时候,总是会弹出是否允许的对话框。 而且用户一旦不小心点了拒绝,下次就不再询问了,而很多小白用户也不知道怎么去设置。这就导致了很...

    最近项目上比较忙,终于有空闲时间写写东西了。

    相信做过android的都知道,现在的手机系统五花八门,当我们去请求用户的权限的时候,总是会弹出是否允许的对话框。

    而且用户一旦不小心点了拒绝,下次就不再询问了,而很多小白用户也不知道怎么去设置。这就导致了很不好的用户体验。

    经过研究,我发现像小米,魅族,这些满大街的系统,都是可以通过隐式意图打开权限设置页面的。

    这里指的是自身app的权限管理页面

    之前已经有人写过类似的文章,不过都比较分散,我这里把这些方法总结了一下。

    不多说,直接上代码。

    首先是最蛋疼的小米,百度了很多前辈留下的方法,发现都不能打开,没有办法,只能通过 adb dumpsys activity activities 命令去查看

    经过一番研究终于打开了。


        /**
         * 跳转到miui的权限管理页面
         */
        private void gotoMiuiPermission() {
            Intent i = new Intent("miui.intent.action.APP_PERM_EDITOR");
            ComponentName componentName = new ComponentName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
            i.setComponent(componentName);
            i.putExtra("extra_pkgname", getPackageName());
            try {
                startActivity(i);
            } catch (Exception e) {
                e.printStackTrace();
                gotoMeizuPermission();
            }
        }

    接下来上魅族的代码


        /**
         * 跳转到魅族的权限管理系统
         */
        private void gotoMeizuPermission() {
            Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");
            intent.addCategory(Intent.CATEGORY_DEFAULT);
            intent.putExtra("packageName", BuildConfig.APPLICATION_ID);
            try {
                startActivity(intent);
            } catch (Exception e) {
                e.printStackTrace();
                gotoHuaweiPermission();
            }
        }

    华为的系统由于不太一样,有些系统是华为自己的权限管理,而6.0的是用的原生的权限管理页面,目前手上只有一台6.0的华为手机,

    暂时没有研究到打开的方法,如果有知道的大神麻烦告知一下

    不过打不开没关系,我们可以退而求其次,打开所用应用的权限管理页面


        /**
         * 华为的权限管理页面
         */
        private void gotoHuaweiPermission() {
            try {
                Intent intent = new Intent();
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");//华为权限管理
                intent.setComponent(comp);
                startActivity(intent);
            } catch (Exception e) {
                e.printStackTrace();
                startActivity(getAppDetailSettingIntent());
            }
    
        }

    目前也就研究了这三大系统,对于原生系统,和其他系统,如果找不到方法,也可以先把用户引导到系统设置页面


        /**
         * 获取应用详情页面intent
         *
         * @return
         */
        private Intent getAppDetailSettingIntent() {
            Intent localIntent = new Intent();
            localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            if (Build.VERSION.SDK_INT >= 9) {
                localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
                localIntent.setData(Uri.fromParts("package", getPackageName(), null));
            } else if (Build.VERSION.SDK_INT <= 8) {
                localIntent.setAction(Intent.ACTION_VIEW);
                localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
                localIntent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());
            }
            return localIntent;
        }

    获取到intent之后直接startactivity就好了。。。

    造诣不够,就只知道这么多了,欢迎各位大牛补充!


    展开全文
  • Android Studio打开手机权限

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

    java.io.FileNotFoundException: /storage/emulated/0/xxx.mp3: open failed: EACCES (Permission denied)

    总算是在万千博客中总结了一下遇到的这个bug,感觉每个人写的都是一部分的解决方法,很幸运解决了,所以记录一下,避免遇到的同志熬夜,希望有用,由于经验有限,温柔批评。

    BUG产生

    Android Studio刚入门,在做简单的MP3播放器时遇到这个困扰的BUG,由于MP3播放器上的.mp3文件是从本地存储设备(SD)卡上读取,所以需要一个读取的权限,这是因为基于安全性能的考虑,android 6.0(API 23)以后,google规定了系统需要动态获取权限 。在没有了解的情况下去运行代码会出现
    在这里插入图片描述
    于是我就复制这段bug# java.io.FileNotFoundException: /storage/emulated/0/xxx.mp3: open failed: EACCES (Permission denied)找百度,然后写写吐吐xue,放放弃弃的,主要是不知道代码怎么搞(刚入门)还有弄不清这个读写权限怎么打开。

    解决方法

    最主要的自己手动动态打开权限,就像是下载一个APP,安装好,手机提示是否允许APP打开读取设备照片,文件权限,然后自己调试下运行代码,已经解决,手机响起《第十套广播体操》,目前的问题就算解决了,代码如下:

    在这里插入图片描述
    然后在onCreate()中调用此方法。
    在mainfest.xml文件中注册静态权限:
    在这里插入图片描述
    重要的是如果加入代码后,问题还是没有解决,也要加入这段代码
    在这里插入图片描述
    运行代码如下
    在这里插入图片描述

    我是在Android 10上运行的,添加这段代码可以运行,具体为啥要添加代码?CSDN大佬比我解释清楚,以上BUG也是吸收CSDN大佬是文章解决,感谢!!!

    展开全文
  • 在应用开发时经常会有这样的...好了,现在就让我们一起来实现一个利用系统权限实现手机重启的示例吧。 一、实现 我们实现很简单,就是给界面一个按钮,然后设置按钮的点击事情,在点击事件里完成手机重启操作。 1、布局
    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47687027
    

     在应用开发时经常会有这样的需求,如何在应用里用代码让手机重启,另外,我们知道在重启之后,我们的应用可以注册广播接收者,以保证我们的应用会第一个将我们的服务开启起来,这样我们的代码就可以第一个接收到接收短信的广播事件。好了,现在就让我们一起来实现一个利用系统权限实现手机重启的示例吧。

    一、实现

    我们实现很简单,就是给界面一个按钮,然后设置按钮的点击事情,在点击事件里完成手机重启操作。

    1、布局文件

    布局文件很简单,就是放置了一个Button按钮,设置点击事件。

    具体代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        tools:context=".MainActivity" >
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="click"
            android:text="重启系统" />
        
    </LinearLayout>
    

    2、MainActivity

    这个类中就是实现了按钮的点击事件,在点击事件里实现重启手机的操作。

    package com.lyz.reboot.activity;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    	}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    	
    	public void click(View v){
    		Intent intent = new Intent();
    		intent.setAction(Intent.ACTION_REBOOT);
    		intent.putExtra("nowait", 1);
    		intent.putExtra("interval", 1);
    		intent.putExtra("window", 0);
    		sendBroadcast(intent);
    	}
    }
    

    3、授权文件AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.lyz.reboot.activity"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="18" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.lyz.reboot.activity.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    三、运行效果

    按照以上的实现,我们开始运行程序,然后点击按钮会报以下错误信息

    Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.REBOOT from pid=1786, uid=10033
    这是因为 Android系统里有很多限制性操作是不允许一般应用程序调用的,比如说:重启手机、关闭手机、修改系统时间、访问受限制的文件等。

    四、重新实现

    1、解决思路

    将我们的应用伪装成系统的应用

    2、实现步骤

    共享系统 UID
    使用系统签名(匹配签名需要公钥和密钥两个文件生成 keystore

    3、具体实现

    1)修改AndroidManifest.xml

    我们在AndroidManifest.xml文件的manifest节点中增加如下属性,来共享系统uid

    android:sharedUserId="android.uid.system"
    完整代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.lyz.reboot.activity"
        android:versionCode="1"
        android:versionName="1.0" 
        android:sharedUserId="android.uid.system">
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="18" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.lyz.reboot.activity.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    2)利用eclipse生成apk文件

    选中要生成apk文件的工程,右键导出项目到指定目录(具体步骤我在这里就不多说明了)。

    3)利用签名工具生成系统签名apk

    这里我用了一个工具来生成系统签名apk,大家可以到链接http://download.csdn.net/detail/l1028386804/9010161下载这个签名工具文件,下载后解压这个工具的目录结构如下图:

    我们将导出的apk文件放到上图所示的文件夹中

    如下图:

    然后我们打开cmd控制台,进入上图所示的目录中,按以下格式输入命令:

    java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk
    其中input.apk为要签名的apk文件, output.apk为签名后输出的apk文件
    操作如下图所示:

    这里我输入的命令是:

    java -jar signapk.jar platform.x509.pem platform.pk8 reboot.apk new.apk
    命令执行后在当前目录下会生成一个带有系统签名的一个apk,这个apk文件为new.apk,

    如下图:

    这个new.apk文件就是我们最终生成的apk文件。

    4)安装apk文件

    首先,我们先要卸载的手机上原来安装的apk文件,然后,在命令行中输入如下命令安装new.apk文件

    adb install new.apk
    前提是命令行当前目录时new.apk文件所在的目录,具体操作见下图:

    如果安装后提示"Success"就是安装成功了。

    五、运行

    点击按钮运行效果为

    以上就实现了Android利用系统权限实现手机重启的功能。

    六、温馨提示

    大家可以到链接http://download.csdn.net/detail/l1028386804/9010161下载Android生成系统签名的文件。可以到链接http://download.csdn.net/detail/l1028386804/9010167下载Android利用系统权限实现手机重启的完整示例源代码

    本实例中,为了方面,我把一些文字直接写在了布局文件中和相关的类中,大家在真实的项目中要把这些文字写在string.xml文件中,在外部引用这些资源,切记,这是作为一个Android程序员最基本的开发常识和规范,我在这里只是为了方便直接写在了类和布局文件中。

    展开全文
  • 安卓手机系统2.3.5ROOT权限获得

    热门讨论 2012-07-02 14:39:36
    想要获取Android手机ROOT权限吗? 拿到新机,总有不少系统定制的软件。无用,还删不了。 这时只有ROOT了。就是获取最高权限。安卓2.3.3以上版本我试了很多方法。终于还是成功破解。 不多说,首先在电脑上装上豌豆...
  • 这个问题在8.0系统手机上不是必现的,这可能和手机厂商的系统处理有关,但是有一点是确定的:Google从Android8.0系统开始,关闭了未知应用安装权限,需要用户手动点开。 第一步:当APK下载完毕之后,正常来说要...
  • 本示例实现了利用系统权限实现手机重启的功能,有关本示例的具体实现与生成系统签名的方法详见博文:http://blog.csdn.net/l1028386804/article/details/47687027
  • content: '请先打开APP通知权限', showCancel: false, success: function (res) { if (res.confirm) { var UIApplication = plus.ios.import("UIApplication"); var NSURL = plus.ios.import("NSURL"); var ...
  • 在android手机系统开发中,可能会遇到将第三方应用的修改系统设置及在其他应用上层显示的权限默认打开的问题。我习惯的做法: 在framework层中,DatabaseHelper.java 中添加 private void loadSettings...
  • oppo手机获取root权限

    2021-09-04 20:47:48
    oppo root oppo 系列 OPPO R7 Plus 亲测成功 但注意手机会刷有root权限系统, 在手机中安装后, 打开点玩机, 获取root权限.
  • 当我们的用户使用App时不小心拒绝了某项必要权限,而导致无法正常使用。这时候希望重新去打开权限,那么问题来了,Android厂家定制的room...经过一番研究,整理出了大部分国产手机直接打开权限管理界面的方法...
  • android手机 录音权限是否打开的检测

    千次阅读 2016-10-08 13:46:25
    6.0之前的权限检测只是检测到是否在清单文件中注册 boolean flag = (PackageManager.PERMISSION_GRANTED ==  pm.checkPermission("android.permission.RECORD_AUDIO", "包名"));  boolean flag = ...
  • Android中应用调用系统权限

    千次阅读 2017-03-02 11:24:05
    现在设备的安全性越来越受到重视,随之而来的便是开发中的各种不便,比如有普通权限,运行时权限,系统权限之分。对于运行时权限的添加可以参考 Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析 而...
  • 一、请求系统相机权限 1 private static final int TAKE_PHOTO_REQUEST_CODE = 1; 2 3 public static String takePhoto(Context context, int requestCode) { 4 String filePath = ""; 5 if
  • ROOT权限是UNIX/Linux系统中的超级管理员用户帐户(Superuser),该帐户拥有整个系统的绝对控制权,可以对所有对象进行操作。 类比于Windows NT内核系统中的超级管理员用户帐户(Administrator)。
  • Android系统权限和root权限

    千次阅读 2015-02-08 21:56:21
    Android系统权限相关的内容:(一)linux文件系统上的权限 -rwxr-x–x system system 4156 2012-06-30 16:12 test.apk.代表的是相应的用户/用户组及其他人对此文件的访问权限,与此文件运行起来
  • uni-app 怎样打开位置权限

    千次阅读 2019-12-05 22:29:49
    manifest.json 设置权限 地图定位勾选 ...还有安卓手机打包权限配置打开 onShow() { //打开地图 chooseLocation() } export function chooseLocation(success){ // 先判断定位权限是否开启 uni.get...
  • 该工具类可以调出各大手机厂商的权限设置页 测试结果: 华为:OK 小米:OK 锤子:OK 一加:OK vivo:OK,vivo有自己的提示,再次点击后也是会跳出提示,有瑕疵,但是还可以 oppo:OK,自己会提示 魅族:暂时跳转没...
  • 怎么样获取小米手机8 SE的root权限

    千次阅读 2019-01-17 13:08:37
    小米手机8 SE有木有方法开启Root超级权限?做开发的人都了解,安卓手机有Root超级权限,一旦手机开启root相关...小米手机8 SE开发版系统自身拥有root权限管理工具,但是,如果你使用的是小米手机8 SE稳定版,建议先...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,637
精华内容 58,654
关键字:

怎样打开手机系统权限