Android------权限

简介: Android------权限

普通权限:app在安装时候,询问你的,不允许就装不成 例如访问网络的权限

危险权限:app已经装好了,在用户使用过程中,请求你允许的权限,下图中全是危险权限包括访问存储等



使用权限应该在AndroidManifest.xml这个文件中,凡是在AndroidManifest.xml文件写的权限,这个app在安装时都会询问是否同意,,,


重点


所有权限包括普通权限和危险权限在安装时询问一遍,才能安装成功,在安装过后,那些危险权限在用户使用时会再次询问是否同意使用该权限,同意则第二次使用就不会再询问了,如果需要关闭改权限,则应该在手机设置里面讲权限关闭,这样当用户再次访问时,就需要再次同意

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

例如向公有文件写内容


下面代码先判断,通过则获得权限


@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){
            String str ="hello world";
            File dir= Environment.getExternalStorageDirectory();
            File testfile=new File(dir,"testpublicsdfile");
            FileOutputStream fos= null;
            try {
                fos = new FileOutputStream(testfile);
                fos.write(str.getBytes());
                fos.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn  =(Button)findViewById(R.id.btnwrite);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String str ="hello world";
                if(ContextCompat.checkSelfPermission(MainActivity.this,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
                    ActivityCompat.requestPermissions(MainActivity.this,
                            new  String[]
                                    {Manifest.permission.WRITE_EXTERNAL_STORAGE,
                                            Manifest.permission.READ_EXTERNAL_STORAGE},1);
                }else {
                    //往其外存公有文件写,牵扯到一个问题,权限,得要权限
                    File dir= Environment.getExternalStorageDirectory();
                    File testfile=new File(dir,"testpublicsdfile");
                    try {
                        FileOutputStream fos = new FileOutputStream(testfile);
                        fos.write(str.getBytes());
                        fos.close();
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }


新创建一个公众号 Rockey小何同学 想相互交流的同学可以关注一下哈! 感谢支持!

相关文章
|
29天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
14 0
|
4天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
35 1
|
4天前
|
存储 缓存 安全
Android系统 应用存储路径与权限
Android系统 应用存储路径与权限
6 0
Android系统 应用存储路径与权限
|
4天前
|
存储 开发工具 Android开发
Android系统 权限组管理和兼容性
Android系统 权限组管理和兼容性
14 0
|
4天前
|
存储 安全 Android开发
Android系统 自定义系统和应用权限
Android系统 自定义系统和应用权限
19 0
|
13天前
|
安全 Android开发 数据安全/隐私保护
Android中的动态权限请求与最佳实践
【4月更文挑战第14天】 在现代安卓应用开发中,用户隐私和安全被赋予了前所未有的重要性。随着Android 6.0(API级别23)引入的运行时权限模型,开发者必须更加细致地处理权限请求,以确保应用功能的完整性同时不侵犯用户的隐私。本文将深入探讨如何在Android应用中实现动态权限请求,分析常见问题,并提供一系列最佳实践,以帮助开发者优雅地处理这一挑战。
23 5
|
2月前
|
安全 Java 数据挖掘
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace 转载自: https://androidperformance.com/2023/05/14/bad-android-app-with-system-permissions/#/0-Dex-%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF
31 0
|
4月前
|
安全 Android开发 Kotlin
android开发,使用kotlin学习Android权限机制
android开发,使用kotlin学习Android权限机制
41 0
|
7月前
|
Android开发
Android应用开发权限
Android应用开发权限
44 1
|
8月前
|
Java API Android开发
Android 权限机制详解
Android 权限机制详解
74 0