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());

}

}

});

相关推荐
奔跑吧 android38 分钟前
【android bluetooth 协议分析 07】【SDP详解 2】【SDP 初始化】
android·bluetooth·aosp15·bt·gd·sdp_init
梦否3 小时前
Android 代码热度统计(概述)
android
xchenhao6 小时前
基于 Flutter 的开源文本 TTS 朗读器(支持 Windows/macOS/Android)
android·windows·flutter·macos·openai·tts·朗读器
coder_pig7 小时前
跟🤡杰哥一起学Flutter (三十五、玩转Flutter滑动机制📱)
android·flutter·harmonyos
消失的旧时光-19438 小时前
OkHttp SSE 完整总结(最终版)
android·okhttp·okhttp sse
ansondroider9 小时前
OpenCV 4.10.0 移植 - Android
android·人工智能·opencv
hsx66612 小时前
Kotlin return@label到底怎么用
android
itgather13 小时前
安卓设备信息查看器 - 源码编译
android
whysqwhw13 小时前
OkHttp之buildSrc模块分析
android
hsx66613 小时前
从源码角度理解Android事件的传递流程
android