尝试修改android设备中的文件/ sys / class / power_supply / battery / capacity时获取EACCES(权限被拒绝)

时间:2015-10-27 10:07:34

标签: android adb

我需要使用我的应用更改Android设备的电池电量。所以我尝试修改"容量"文件" / SYS /类/ POWER_SUPPLY /电池/"目录。 但是当运行代码时,我看到以下错误:

java.io.FileNotFoundException:/ sys / class / power_supply / battery / capacity:open failed:EACCES(Permission denied)

以下是我尝试编辑文件的代码。

Runtime.getRuntime().exec("sh /system/xbin/su");
FileWriter fw= new FileWriter(new File("/sys/class/power_supply/battery/capacity"));
fw.write("45");
fw.close();

这是清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.test_app.qa">

<application android:allowBackup="true" android:label="@string/app_name"
    android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme">

</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
    android:label="test"
    android:targetPackage="com.test_app.module"/>

任何人都可以建议我修改文件的方法

1 个答案:

答案 0 :(得分:0)

检查您是否已请求更改/读取文件的权限,以及路径是否正确。

By documentation

  
    

公共类FileNotFoundException     扩展IOException

  
     

表示尝试打开由指定路径名表示的文件失败。

     

当具有指定路径名的文件不存在时,FileInputStream,FileOutputStream和RandomAccessFile构造函数将抛出此异常。如果文件存在但由于某种原因无法访问,例如当尝试打开只读文件进行写入时,这些构造函数也会抛出它。)