SD卡无论是电脑无法读取u盘数据还是手机,都可以读取数据 但是无法写入,也无法删除。

当前位置:
> 帖子正文
关于安卓4.4限制外置卡读写的解决方法
图片看详细教程
字母代码:
复制了照图片教程 改下文本就可以了
本人测试了正常使用 系统是官方10E
本教程不负责任何修改后出现的问题 胆大的友友可以自己测试
友情提醒备份好文本 以防万一 可以覆盖回去
附件是本人一直使用的RE管理器.apk
解决刷入4.4.2之后外置SD卡 无法写入问题
首先,取得ROOT权限,安装RE管理器,
找到位置:/system/etc/permissions/platform.xml
长按之,选择在文本编辑器中打开。
电脑上想改也可以。注意事项如下:
一定要备份
1.不要用记事本等windows任何自带的文本编辑器 可以用notepadd++,edit plus等以及第三方IDE,不自动保存BOM头和强制编码的
2.电脑上替换后一定要注意权限 211 ,第一行 前2个,下面每行的第一个。
不吐不快,我来说两句...
最新评论(4)
发表于: 22:42:50
嗯,试了确实是这样;一开始91助手往外置SD卡拷贝东西总是抱无写入权限,改了后可以正常写入了。多谢楼主。
发表于: 01:29:39
高手,一下子就解决了我的疑难问题。
发表于: 09:31:23
写的不错 ,学习了。多谢分享
发表于: 14:21:10
本帖最后由 NGHD8888 于
14:26 编辑
太厉害了,所有问题都解决了,快图浏览,手机管家私密空间加密sd卡里面的视频现在又可以用了,腾信官方都解决不了,太牛了!直接用rootexplorer改写就行了,退出时候保存,自己自动将原来的备份成.bck。 不用复制啥的。 完成后要重启才能生效!
发表于: 21:42:44
dddddddddddddd
您需要注册登录后,才能回帖哦!
参考价:¥1788
上市时间:2016.12
上市时间:2016.04
上市时间:2017.08
上市时间:2016.06
上市时间:2017.07
上市时间:2017.09
上市时间:2017.11
上市时间:2018.02
上市时间:2017.10
上市时间:2018.03
上市时间:2018.02
上市时间:2017.11
上市时间:2018.03
上市时间:2017.12
上市时间:2018.03
您已经签到了,请明天再来吧!手机的sd卡的写入和读取数据的方
时间: 19:40:38
&&&& 阅读:214
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&我们要实现的是:往输入框输入数据,点击一个写入按钮,将输入框内的数据写入到sd卡上,在点击读取按钮,则将sd卡上只等的文件名称内的数据显示到一个textView上。
首先,看一下XML文件,很简单,只有两个按钮,一个输入框,和一个文本控件;
保存的数据可以到mnt/sdcard/下查看
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" &
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="59dp"
android:ems="10" &
&requestFocus /&
&/EditText&
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="46dp"
android:text="写入" /&
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_alignRight="@+id/editText1"
android:text="读取" /&
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button2"
android:layout_marginBottom="14dp"
android:layout_toRightOf="@+id/button1"
android:text="TextView" /&
&/RelativeLayout&
  然后是自己新建的一个功能类FileService,主要负责往sd卡上读取和写入数据。
package com.example.
import java.io.ByteArrayOutputS
import java.io.F
import java.io.FileInputS
import java.io.FileNotFoundE
import java.io.FileOutputS
import java.io.IOE
import android.content.C
import android.os.E
* 主要用于往sd卡上读取和写入数据
* @author Administrator
public class FileService {
public FileService(Context context) {
this.context =
* 写入数据
* @param fileName
* @param context
* @return 返回值是false则写入数据失败,反之则成功
public boolean saveFile(String fileName, String context) {
boolean flag =
FileOutputStream fileOutputStream =
// getExternalStorageDirectory():返回扩展存储卡的目录
File file = new File(Environment.getExternalStorageDirectory(),
fileName);
// getExternalStorageState():返回扩展存储卡的当前状态,调用此方法,将会
// 返回一个String类型状态值,如果返回的状态和Environment.MEDIA_MOUNTED(已经挂载并且拥有可读可写权限)
//的值一样的话,说明当前的sd卡可以进行操作
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(context.getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fileOutputStream != null) {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
* @param fileName 文件名稱
以字符串表現形式返回讀取到的數據
public String getFile(String fileName) {
FileInputStream fileInputStream =
//缓冲的流,与磁盘无关,所以不需要关闭
ByteArrayOutputStream output = new ByteArrayOutputStream();
File file = new File(Environment.getExternalStorageDirectory(),
fileName);
//判断sd卡是否可用
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
fileInputStream = new FileInputStream(file);
int len = 0;
byte[] data = new byte[1024];
while ((len = fileInputStream.read(data)) != -1) {
output.write(data, 0, len);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fileInputStream != null) {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
return new String(output.toByteArray());
  接着是activity类,
1 package com.example.
3 import android.app.A
4 import android.os.B
5 import android.text.E
6 import android.view.M
7 import android.view.V
8 import android.view.View.OnClickL
9 import android.widget.B
10 import android.widget.EditT
11 import android.widget.TextV
13 public class MainActivity extends Activity implements OnClickListener{
private Button btn1;
private Button btn2;
private TextView textV
private EditText editT
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
textView = (TextView) findViewById(R.id.textView1);
editText = (EditText) findViewById(R.id.editText1);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
public void onClick(View view){
switch(view.getId()){
case R.id.button1:
String data1 = editText.getText().toString();
savaFile("test.txt",data1);
case R.id.button2:
String data2 = readFile("test.txt");
textView.setText(data2);
public void savaFile(String dir,String data){
FileService fileService = new FileService(this);
fileService.saveFile(dir,data);
public String readFile(String fileName){
FileService fileService = new FileService(this);
String data = fileService.getFile(fileName);
public boolean onCreateOptionsMenu(Menu menu) {
// I this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
最后,注意,因为我们的操作涉及到了sd卡的写入和读取权限,所以要在manifest文件中添加相应的授权信息
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/&
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/Smart-Du/p/4307446.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 手机读取运动数据权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信