android T 建立文件夹及文件的记录

ops/2025/1/18 20:01:15/

第一:AndroidManifest.xml 中整体给予apk权限,如此加入后,在android的settings中,可以找到app.手动给予静态的权限,但是app不一定能使用,请大神指导为什么?

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

第二:添加rxPermisson的依赖
          添加依赖:
    打开 build.gradle(app) ,添加以下代码:
    implementation 'com.github.tbruyelle:rxpermissions:0.12'
    //rxJava 注意:这里必须是rxJava3,其它不行,反正我搞了半天
    api 'io.reactivex.rxjava3:rxjava:3.0.4'
    api 'io.reactivex.rxjava3:rxandroid:3.0.0'

第三步:
打开settings.gradle添加以下代码
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {url 'https://jitpack.io'} //添加的依赖的仓。添加这句
    }
}

第四步:app将要动态申请的权限,获得用户允许后,就可以使用这些权限。
    private static final String[] permissionsGroup = new String[]{
            Manifest.permission.READ_MEDIA_IMAGES,
            Manifest.permission.READ_MEDIA_AUDIO,
            Manifest.permission.READ_MEDIA_VIDEO,
            Manifest.permission.READ_CALENDAR, //ok
            Manifest.permission.RECORD_AUDIO,  //ok
            Manifest.permission.ACCESS_FINE_LOCATION, //ok
            Manifest.permission.CAMERA //ok
    };


第五步:申请权限
    这里时点击onClick执行获取权限。
    public void testEnsureEachCombined(View view) {
        RxPermissions rxPermissions = new RxPermissions(this);
        Observable.timer(10, TimeUnit.MILLISECONDS)
                .compose(rxPermissions.ensureEachCombined(permissionsGroup))
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<Permission>() {
                    @Override
                    public void accept(Permission permission) throws Throwable {
                        Log.i(TAG, "权限名称:" + permission.name + ",申请结果:" + permission.granted);
                    }
                });
    }

第六步:在app中建立文件夹与文件
                File appDirectory = mContext.getFilesDir();
                File customDirectory = new File(appDirectory,"xuxdTest");
                if (!customDirectory.exists()){
                    boolean isDirectoryCreated = customDirectory.mkdirs();
                    if(isDirectoryCreated){
                        Log.d(TAG, "init-step-7 isDirectoryCreated "+isDirectoryCreated);
                    }else {
                        Log.d(TAG, "init-step-8 isDirectoryCreated "+isDirectoryCreated);
                    }
                }

                if(customDirectory.exists()){
                    Log.d(TAG, "init-step-9 customDirectory  exists"+customDirectory.toString());
                }else {
                    Log.d(TAG, "init-step-9 customDirectory  not exists");
                }

//                mWindEar.init(mContext);
//                mWindEar.startRecord(true);

                try {
                    File newFile = new File(customDirectory, "example.txt");

                    // 如果文件不存在,创建新文件
                    if (!newFile.exists()) {
                        boolean isFileCreated = newFile.createNewFile();
                        if (isFileCreated) {
                            Log.d(TAG, "文件建立成功 .......... ");
                        } else {
                            Log.d(TAG, "文件建立 失败 .........");
                        }
                    }
                } catch (IOException e) {
                    Log.e(TAG, "Error occurred: " + e.toString());
                }
            }
        });


http://www.ppmy.cn/ops/151171.html

相关文章

支付宝P0级重大事故!

支付宝又出事了&#xff01;支付宝发生了P0级的重大事故&#xff0c;导致了大规模的用户体验问题&#xff0c;引起了广泛关注。尽管支付宝已经是国内最成熟、最稳定的支付平台之一&#xff0c;但这次的事故再次让人感受到&#xff1a;无论多么强大的平台&#xff0c;也无法避免…

基于Python(Django)+SQLite3实现的(Web)资产管理系统

基于python和Django实现的资产管理系统 第一章 绪 论 1.1 研究工作的背景与意义 当今社会正快速向信息化社会前进。信息系统的作用也越来越大&#xff0c;特别是一些企业或组织等&#xff0c;往往需要管理大量的资产数据。对这些资产信息&#xff0c;往往需要安全的&#xf…

25. 【.NET 8 实战--孢子记账--从单体到微服务】--记账模块--预算金额的币种转换

这篇文章的代码和22. 【.NET 8 实战–孢子记账–从单体到微服务】–记账模块–切换主币种这篇文章的代码大体一样。这篇文章我们简单讲解一下。 既然收支记录都已经支持主币种转换的同时重新计算收支金额了&#xff0c;那预算也要支持切换主币种重新计算预算金额。我们一起来看…

nssctf_WEB部分题解

1.题目:easy_ssrf(ssrf 伪协议读取文件) 1. 题目:![](https://cdn.nlark.com/yuque/0/2024/png/39210681/1734314732935-4ccb798a-8525-4439-90e5-b78551cbfea0.png)看起来没有什么思路,于是随便写个网站看看回显:![](https://cdn.nlark.com/yuque/0/2024/png/39210681/1734314…

Flask学习入门笔记

Flask学习入门笔记 前言1. 安装Flask2. 创建一个简单的Flask应用3. 路由与视图函数3.1 基本路由3.2 动态路由3.3 HTTP方法 4. 请求与响应4.1 获取请求数据4.2 返回响应 5. 模板渲染5.1 基本模板渲染5.2 模板继承 6. 静态文件6.1 静态文件的目录结构6.2 在模板中引用静态文件6.2…

Temp123

MapDB&#xff1a;的持久化机制&#xff0c;以及源码分析和摘取 1、spark streaming--struct streaming 基于 时间间隔 攒批 2、kafka-connect-hdfs 控制 flush.size 和 interval.ms控制 攒批 - 完全自研 攒批机制 - 使用 embeded 版 https://lxblog.com/qianwen/share?shar…

idea中远程调试中配置的参数说明

Ⅰ 远程调试中配置的端口号与服务本身端口号区别 一、远程调试中配置端口号的作用 在 IDEA 中进行远程调试时配置的端口号主要用于建立开发工具&#xff08;如 IDEA&#xff09;和远程服务之间的调试连接。当你启动远程调试时&#xff0c;IDEA 会监听这个配置的端口号&#xf…

tomcat状态一直是Exited (1)

docker run -di -p 80:8080 --nametomcat001 你的仓库地址/tomcat:9执行此命令后tomcat一直是Exited(1)状态 解决办法&#xff1a; 用以下命令创建运行 docker run -it --name tomcat001 -p 80:8080 -d 你的仓库地址/tomcat:9 /bin/bash最终结果 tomcat成功启动