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

第一: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());

}

}

});

相关推荐
zhu62019762 小时前
Android10如何设置ro.debuggable=1?
android·安全·android逆向·android10·ro.debuggable
androidwork2 小时前
Android 内存溢出(OOM)的 Kotlin 排查与优化指南
android·开发语言·kotlin
xzkyd outpaper2 小时前
Android中PID与UID的区别和联系
android·计算机八股
Developings2 小时前
Android logcat命令汇总
android
吃着火锅x唱着歌3 小时前
PHP7内核剖析 学习笔记 第八章 命名空间
android·笔记·学习
君的名字4 小时前
怎么判断一个Android APP使用了React Native 这个跨端框架
android·react native·react.js
君的名字4 小时前
怎么判断一个Android APP使用了Electron 这个跨端框架
android·javascript·electron
君的名字5 小时前
怎么判断一个Android APP使用了Qt 这个跨端框架
android·开发语言·qt
xzkyd outpaper7 小时前
Android中Framework用到了哪些跨进程通信方式
android·计算机八股
珹洺7 小时前
计算机操作系统(十二)详细讲解调计算机操作系统调度算法与多处理机调度
android·java·数据库