Android编程中中root权限的获取

前几天在做一个文件管理器,在打开非sdcard下的目录文件时碰到了空指针的错误,色友说要获取root权限才能访问其他需root权限的文件夹,于是用了下面的方法获取权限,

public final String rootPowerCommand = "chmod 777 /dev/block/mmcblk0";// 授权root权限命令
/**
  * 授权root用户权限
  * 
  * @param command
  * */
 public boolean rootCommand(String command) {
  Process process = null;
  DataOutputStream dos = null;
  try {
   process = Runtime.getRuntime().exec("su");
   dos = new DataOutputStream(process.getOutputStream());
   dos.writeBytes(command+"\n");
   dos.writeBytes("exit\n");
   dos.flush();
   process.waitFor();
  } catch (Exception e) {
   return false;
  } finally {
   try {
    if (dos != null) {
     dos.close();
    }
    process.destroy();
   } catch (Exception e) {
   }
  }
  return true;
 }


 

虽然调用成功,但是还是空指针错误,如下:

@Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.list_view);
  // loadApps();
  rootCommand(rootPowerCommand);//调用获取root权限
  initTool();
  initFileList();
 }
@Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  @SuppressWarnings("unchecked")
  Map<String, Object> map = (Map<String, Object>) this.getListAdapter()
    .getItem(position);
  FileBean fileBean = (FileBean) map.get("icon");
        Log.v("--------path---------", fileBean.getPath());
  File file = new File(fileBean.getPath());//此处路劲fileBean.getPath()经调试得到是存在的目录,如我点击root文件夹得到/root
  if (!file.isDirectory()) {
   fileControl.openFile(file);// 打开文件
  } else {
   fileDirControl.openDir(file);// 打开文件夹。。。。。。。。。。。。。。。。接下面
  }
 }
 
/**
  * 打开目录
  * 
  * @param file
  * */
 public void openDir(File file) {
  fileBroswer.current_path = file.getAbsolutePath();
  fileBroswer.currentDir.setText(file.getAbsolutePath());
  File[] files = file.listFiles();//得到的files竟然是空的,就是说虽然目录文件存在,但是你不能访问它,
  data = fileBroswer.getData(files);//由此也就照成了空指针错误,为什么么?求解释啊。。。。。。
  MyAdapter myAdapter = new MyAdapter(context, data);
  fileBroswer.setListAdapter(myAdapter);
 }


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值