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

devtools/2025/1/17 13:26:48/

第一: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/devtools/151282.html

相关文章

抖音ip属地没有手机卡会显示吗

在数字时代&#xff0c;社交媒体平台如抖音已成为人们日常生活的重要组成部分。随着抖音等应用对用户体验和隐私保护的不断优化&#xff0c;IP属地显示功能逐渐走进大众视野。这一功能旨在提高网络环境的透明度&#xff0c;打击虚假信息和恶意行为。然而&#xff0c;对于没有手…

学员答疑:安卓分屏窗口的TouchableRegion设置流程追踪

背景&#xff1a; vip学员在群里问到了一个分屏触摸区域设置的问题&#xff0c;开始以为就是和普通Activity设置区域没啥差别,都是在InputMonitor中进行的设置&#xff0c;但是仔细研究下来其实并不是哈。本文就带大家来手把手分析一下分屏情况下的触摸区域是怎么设置的。 d…

数据仓库的复用性:模型层面通用指标体系、参数化模型、版本化管理

在数据仓库设计中&#xff0c;复用性 是一个关键原则&#xff0c;它不仅能提升数据资产的使用效率&#xff0c;还能降低开发成本、优化系统运维。下面将从 模型层面的复用性、通用指标体系、参数化模型、版本化管理 四个方面进行详细介绍&#xff0c;并提供可落地的设计方案。 …

算法竞赛(蓝桥杯)贪心算法1——数塔问题

题目描述 有如下所示的数塔&#xff0c;要求从底层走到顶层&#xff0c;若每一步只能走到相邻的结点&#xff0c;则经过的结点的数字之和最大是多少&#xff1f; 输入 输入数据首先包括一个整数整数 N (1≤N≤100)&#xff0c;表示数塔的高度&#xff0c;接下来用 N 行数字表示…

【Linux探索学习】第二十六弹——进程通信:深入理解Linux中的进程通信

Linux探索学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 在Linux操作系统中&#xff0c;进程通信&#xff08;IPC&#xff09;是操作系统的一项核心功能&#xff0c;用于在不同进程之间交换数据或…

(01)STM32—GPIO

1. GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出端口。可配置为8种输入输出模式。引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V。输出模式下可控制端口输出高低电平&#xff0c;用以驱动LED、控制蜂鸣器、模拟通信协议输出时…

FPGA工程师成长四阶段

朋友&#xff0c;你有入行三年、五年、十年的职业规划吗&#xff1f;你知道你所做的岗位未来该如何成长吗&#xff1f; FPGA行业的发展近几年是蓬勃发展&#xff0c;有越来越多的人才想要或已经踏进了FPGA行业的大门。很多同学在入行FPGA之前&#xff0c;都会抱着满腹对职业发…

Gartner预测2025年关键基础设施的CPS安全:确保机器人、无人机、自动驾驶汽车、人工智能等前沿技术应用和新场景安全

增强人类能力技术、无人机、自动驾驶汽车、人工智能和量子集成资产等技术创新正在推动网络物理系统在所有行业中进入新领域。本报告可帮助安全和风险管理领导者预测并为 CPS 安全的未来做好准备。 主要发现 移动专网正成为信息物理系统 (CPS) 自动化工作更具吸引力的选择。这是…