android 5.1无法写入文件

从本地图片中选取或拍照裁剪然后上传
新建文件暂时保存一下 但是5.1以上不行 都是说文件找不到
5.1以下和6.0以上都可以

这是新建文件的代码
file = new File(Environment.getExternalStorageDirectory() + File.separator
+ getString(R.string.app_name) + File.separator, "tempImage.jpg");
file.createNewFile();

0

2个回答

这个问题我也遇到过:你试试将文件建在 data/data文件目录下。我建在data/data目录下就没有出过问题。
还有你是不是要判断一下:目录是否存在:不存在去创建目录。

0
qq_28676355
姜翔飞 File imagePath = new File(getCacheDir(), "" + Calendar.getInstance().getTimeInMillis()+".jpg"); File parentFile = imagePath.getParentFile(); if (!parentFile.exists()) {// 判断上级目录是否存在,不存在就需要创建 parentFile.mkdirs(); }
3 年多之前 回复
baidu_15438619
baidu_15438619 还是不行 你建的代码是怎样的?
3 年多之前 回复

楼上 的 方法正解

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android.hardware.Camera 5.1之后操作照相机是不是不能用啦,我用小米手机(基本android 6.0)
出现"Fail to connect to camera service" 这个错误,但用安卓4.1的机子运行一切正常.我重新了小米手机也不行.不知道是怎么回事? 权限也都加了Camera.open();这就错了.
关于Android写入文件失败的问题
关于Android写入文件失败的问题由于本人在Android开发的时候,经常性的写入文件,每次都写入异常,导致写入文件失败,经过慢慢的研究和反复的测试,总结出写入问题的失败的原因(比较菜,写的不好勿喷):代码块/** * 把Assets的下面的文件写入到其他文件 * @param context * @param assetsFileName Assets下面的
android5.1 应用无法安装等问题
09-01 00:00:03.596 F/patchoat( 391): art/runtime/gc/heap.cc:286] Check failed: non_moving_space_mem_map != nullptr Failed to mmap at expected address, mapped at 0x6c00 0000 instead of 0x73955000 ...
Android 5.1 录音流程
Android 5.1 录音流程如下:
关于android5.1的代码在android7.1上运行的 问题记录
在android 7.1调试 已经在android5.1 运行 良好的代码,出现:A/art: art/runtime/java_vm_ext.cc:470] JNI DETECTED  error in application use of invalid jobject 0x...(这个地址可以随意)我调用的是本地方法;博客连接:点击打开链接http://www.voidcn.com/arti...
安卓系统5.1.0和安卓系统8.1.0下接收广播的不同
静态广播 。。。。 低版本安卓系统5.1.0广播方式 Intent mIntent=new Intent("com.activity.MainActivity"); //这里的intent(action...) 对应的是一个自定义的唯一字符串,用来与接收广播端一一对应。 context.sendBroadcast(mIntent);//发送广播 高版本安卓系统8.1.0广播 。。。。 ...
android中root用户无法往某些目录写入文件解决方法
初学linux的人应该都认为root用户可以随意操作文件(如复制,删除等),而不会遇到权限不足的问题 然而如果你尝试往android的/system/xbin目录中复制文件时却会遇到问题,如下所示: 系统会提示该目录是只读文件系统。 用mount命令查看下system目录 的挂载信息,如下所示: 可以看到图中有一个“ro",这表示这个目录被挂载为只读(read only
android原生5.1相册照片详情字符串修改
packages\apps\Gallery2\src\com\android\gallery3d\data\MediaDetails.java.. private static void setExifData(MediaDetails details, ExifTag tag,            int key) {        if (tag != null) {            ...
Android5.1系统外部存储和U盘可写解决方案
在Android 4.4以上系统,如果你同时使用了机身存储和外部存储, 那么应用程序将无法在外部存储中创建、修改、删除数据。但是应用程序仍然可以往主存储(机身存储)的任意目录中写入数据,不受任何限制。Google表示, 这样做的目的是,,通过这种方式进行限制,系统可以在应用程序被卸载后清除遗留文件。     解决方法:修改/framework/base/data/etc/目录的platfor
Android 5.1实现休眠的方法
实现休眠类: PowerManager.java 方法: goToSleep(int time);
Android5.1-s5p6818平台替换开机logo和开机动画失败之原因
重新升级源码之后,之前的工作空间又重新建立了一遍,很多细小的改动又要重新排查和做一遍,替换开机动画和开机logo本来是一件很简单的事情,但是小细节忽略了导致替换失败。因此记录这次愚蠢的忽略细节。     替换logo和动画的主路径都一样的:源码/device/nexell/~方案商定制路径/bootanimation.zip 就是动画资源的压缩包了, 再往下的路径boot/ 下面就是开机的log
android5.1中自动更新时间机制
NITZ:NITZ(Network Identity and Time Zone)或网络标识和时区,是一种用于自动配置本地的时间和日期的机制,同时也通过无线网向移动设备提供运营商信息。NITZ是自从PHASE 2+ RELEASE 96 的GSM中的可选功能,经常被用来自动更新移动电话的系统时钟。可更新 时间和时区; NTP:NTP(Network Time Protocol)提供准确时间,首先
Android5.1权限问题解决
Android 5.x 权限问题解决方法               一、  android 5.x开始,引入了非常严格的selinux权限管理机制,我们经常会遇到因为selinux权限问题造成的各种avc denied困扰。   本文结合具体案例,讲解如何根据log来快速解决90%的权限问题。  遇到权限问题,在logcat或者kernel的log中一定会打印avc denied提示缺
Android 5.1 WebView内存泄漏问题及解决
问题背景在排查项目内存泄漏过程中发现了一些由WebView引起的内存泄漏,经过测试发现该部分泄漏只会出现在android 5.1及以上的机型。虽然输入法项目使用WebView的场景并不多,但秉承着一个泄漏都不放过的精神,我们肯定要把它给解决了。遇到的问题项目中使用WebView的页面主要在FAQ页面,问题也出现在多次进入退出时,发现内存占用大,GC频繁。使用LeakCanary观察发现有两个内存泄漏
安卓4.4.4和5.1.1系统对Http请求的不同响应
我在一个很简单的问题上跌倒了。五天没爬起来。原本我想用HttpURLConnection的getInputStream方法获取http;//www.baidu.com网站返回的信息。结果发现在安卓4.4.4系统的手机上可以显示正确的信息,服务器响应代码200,但在安卓5.1.1系统的手机上获取不到任何信息,服务器响应代码是302。这个好像是网址重定向吧。我又加上setInstanceFollowR...
安卓源码编译
用ubuntu14.04编译安卓5.1源码全过程。
android 5.1 系统音频的切换
1, 获取各种音量 首先获取音频管理类AudioManager AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 获取通话最大/当前音量 int max = mAudioManager.getStreamMaxVolume(AudioManager.STR
Android 解决OPPO 5.1 浮窗权限不兼容问题
OPPO 5.1 浮窗权限开启并不像大多Android机那样在手机设置中,而是在OPPO的系统软件-手机安全中心-中,故跳转到权限界面,需要做特殊处理。1.判断是否为 OPPO 5.1 系统if(Utils.isOppo() && Utils.getAndroidVersion().equals("5.1")) { compat = new OppoCompatIm...
Android5.1系统如何通过包名给应用开放系统权限
    常用的给应用开放系统权限的方法是直接将该应用做成系统应用(即在AndroidManifest.xml文件里加上:android:sharedUserId="android.uid.system"),但是这种做法限制了应用本身的自由,也就是说经过系统签名后的系统应用只能够在对应的Android平台上安装使用,无法向其他应用一样放到Android市场里兼容所有的Android设备。     现...
android5.1 不生成odex的方法
android 不优化APK生成odex的方法  1.在Android源码下APP程序的Android.mk文件中加入下面一句: LOCAL_DEX_PREOPT := false        就直接打包生成.apk 不会附带生成.odex文件了  2.在out/target/product/xxxx/system/app/x_test/目录下找到.apk直接push
[Android5.1]系统默认设置
settings.dbAndorid系统中设置的相关信息存放在数据库中,具体位置为: /data/data/com.android.providers.settings/database/settings.db 该数据库就是轻量级的关系型数据库SQLite。Android对该数据库的操作封装成了许多SQLiteXXX类。framework层或应用层使用这些类就可以实现从数据库的读写操作。
Android之不能静态注册的系统广播(5个)
在Android开发中,有些系统广播是不能在清单文件中静态注册的,只能通过registerReceiver方法进行动态注册(Android文档这样描述:You cannot receive this through components declared in manifests, only by explicitly registering for it with {@link Context
Android5.1永久隐藏工具栏定制
最近有个需求: 勾选"永久隐藏工具栏"时,要求导航栏隐藏,状态栏不隐藏。 一. 源码中找到/packages/apps/Settings/src/com/android/settings/DisplaySettings.java: 可以看到勾选"永久隐藏工具栏"时发送了个广播, @Override     public boolean onPreferenceTreeClick(Prefer...
vuejs文件在android低版本中(5.1,4.4)报错。导致页面空白
问题:使用VS2017开发APP中的页面使用VUE.js遇到打包出来的android文件 在低版本的中显示空白。 打开调试页面显示错误信息如下: 原因:低版本内置的浏览器(webview)版本太低,无法解析 ES2015最新的一些语法。需要在Webpack中配置babel-loader,还需要在项目最外层添加一个.babelrc文件用于babel默认解析ES2015中的特殊语法(例如:...
Android 5.1-s5p6818平台音频无输出的问题
继续6818平台的外设驱动修改,其中音频输出的问题困扰了好几天,一直没有找到原因(按照原DEMO版相同电路相同代码但是新板子上面的音频就是没有输出~),在和硬件工程师的不断沟通当中,不断地思考到底问题在哪里。主要一个难以查找原因的原因是新的硬件把耳机插孔去掉了,但是这个原因似乎就是因为耳机检测的引脚电平和DEMO版的电平不一样导致的(后来证实的确是)。 音频的处理流程大致是系统输出数据流由NAU
GMS 5.1_r3/6.0_r2 以上版本开机向导wifi设置无法跳过
▪Description   更新版本GMS(5.1_r3/6.0_r2)后出现,在开机向导wifi设置界面,跳过按钮置灰 5.1_r3版本,按钮置灰一段时间后可以恢复,点击即可跳过6.0_r2版本,按钮置灰不能恢复,则此次开机一直不能跳过 ▪Version  Android L/M ▪Rate 30% ~ 50% ▪Analyze 5.1_r3及
Android5.1预装输入法注意事项
笔者在预装输入法时,预装出现了问题,并发表了一篇帖子:给MT8735系统平台预装输入法出现的问题(以讯飞输入法为例) , MT8735系统平台操作系统是Android5.1,直接给系统安装输入法,没问题,但是预装在系统中作为系统应用就会报错,于是查找了资料,终于将问题给解决了!LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)# Module name...
Android 5.1系统禁止通知状态栏下拉
之前看了网上很多修改,感觉太繁琐,修改代码太多,最后感觉还是自己找找,看能不能简单点 diff --git a/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/android/frameworks/base/packa old
RK3288Android5.1系统在设置中添加隐藏和显示导航栏功能
1.需求 应客户需求,在android系统设置中添加一个设置选项,该选项中添加一个开关功能,用于显示和隐藏系统底部导航栏。 2.分析 首先当然是有系统源码了,RK3288,5.1系统源码一份。 然后就是修改系统设置app,即Settings.apk的源码。 再然后修改系统SystemUI.apk的源码。 最后,通过Settings.apk的开关按钮来触发,发送广播通知给SystemUI...
对于android WebView加载不出Html5网页的解决方法
之前碰到一个问题,就是用webview去加载一个H5的页面,但是发现加载出现一片空白,但是我把我的链接放到浏览器里却又是可以的,找了会,被我老大叫过去搞别的了,然后被我老大找出来了,就是因为对某些标签的不支持,加上: settings.setDomStorageEnabled(true); 然后网页就显示出来了。
禁用下拉菜单,android5.1源码
前言 对于下拉菜单,总有人想永久禁用,无论在launcher还是在应用,还是在锁屏界面 其实这个很简单,也不需要多麻烦,只要在下拉时候返回一个控制就可以了 目录:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java  如下更改:
Android5.1 Launcher3修改成单层 无法卸载非系统应用
先屏蔽不显示搜索框 只显示删除 卸载 按钮Launcher.java protected boolean updateGlobalSearchIcon() { final View searchButtonContainer = findViewById(R.id.search_button_container); final ImageView searchButton = (ImageVi...
android5.1修改默认锁屏方式(去除锁屏)
在5.1上,代码的处理方式变得不一样了,我最开始的做法是更改锁屏默认值,但是第一次刷机有效,第二次开机居然就不进去桌面了. 第一种方法:目录(不推荐):frameworks\base\packages\SystemUI\src\com\android\systemui\keyguard\KeyguardViewMediator.java 关键字:mExternallyEnabled
android中因权限无法读写文件的问题
在android开发中,有时候会无法对手机中或SD卡中的文件进行读写,查看log发现是权限的问题。 这其中有多个原因。最普遍的原因是开发者没有在AndroidManifest.xml文件中对所需权限进行声明,如SD卡读写权限: 而有时候尽管声明了依旧会遇到权限问题,这是因为在高版本的sdk中,如在Android7.0以上,读写SD卡权限需要在代码中进行申请,如下: pri
Android5.1源码改变USB连接方式
前言    接到一个项目,说要更改USB的连接方式,说是只要保留只充电模式,想了一下,这应该很容易实现呀,所以就在上层做了一系列的操作,结果很悲催,对于USB连接,好像系统底层有一定的读取,所以导致USB用不了,所以就各种爬文,终于找到最简单的方法! 目录文件:device\mediatek\common\device.mk 关键字:persist.sys.usb.config 把
Android 5.1.1源码修改添加白名单和静默安装功能
最近弄项目都是些要改源码才能实现的,像静默安装和白名单功能.   静默安装:        1:在源码的AndroidMainfest.xml中添加权限       --- a/frameworks/base/core/res/AndroidManifest.xml +++ b/frameworks/base/core/res/AndroidManifest.xml @@ -2451,6 ...
无法写入文件?
用COUT可以输出,但是写入文件却少了一部分rnrn这个程序是获取指定目录的所有文件名,包括子目录下的文件,并把文件名放到temp.txt中rn问题:只把目录下文件名写到了TXT中,但我用COUT输出时明明有子目录的文件?rn#include rn#include rnusing namespace std; rnint FindDir(char *szDir) rn rn FILE* file2 = fopen("temp.txt", "w"); rn int i = 0;rn //int number1 = number;rn char directory[MAX_PATH]; rn char file[MAX_PATH]; rn HANDLE hFile; rn WIN32_FIND_DATA fd; rn memset( &fd, 0, sizeof(WIN32_FIND_DATA) ); rn strncpy(directory, szDir,MAX_PATH); rn strcat(directory,"*.*"); rn hFile = FindFirstFile(directory, &fd); rn do rn rn if( fd.cFileName[0] != '.' ) rn rn if( fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) rn rn memset(file, 0, MAX_PATH); rn strcpy(file, szDir ); rn strcat(file, fd.cFileName ); rn strcat(file, "\\" ); rn FindDir(file); rn rn else rn rn memset(file, 0, MAX_PATH); rn strcpy(file, szDir ); rn strcat(file, fd.cFileName ); rn strcat(file, "\n" ); rn fwrite(file, sizeof(char), strlen(file), file2); rn cout<>path;rn /*输入例:c:\\dfdfsdf\\ */rn //int number = strlen(path);rn FindDir(path); rn return 0; rn
Android SDK Platform(Android 5.1系统)
这是从Android SDK manager下载的针对于API Level 22的platform,如果在SDK manager无法下载,可直接下载该资源,使用方法在压缩包中,需下载后方可查看。
Android Studio HelloWord 测试程序在Android5.1真机上运行异常分析
安装完成Android Studio以后,想跑一下HelloWord的测试程序,发现在模拟器上跑起来正常,但在真机上运行起来有问题,API选择的是22,Android5.1。 报错如下: 05-03 09:27:03.660 5349-5361/? E/cutils-trace: Error opening trace file: Permission denied (13) 05-03 09
android 5.1 显示屏亮灭的控制
有些时候,在显示屏熄灭的情况下需要点亮显示屏,而有时候需要熄灭显示屏。以下是android 5.1 的一种亮屏和灭屏的方法,直接往文件里面写入数据。 1,判断显示屏的状态(点亮/熄灭) int screen_brightness =Settings.System.getInt(getContentResolver(), "is_led_backlight_on",10); 获取