android中一般获取到系统的一些参数等都比较麻烦,由于android的内核是linux,获取到shell,一切操作都显得简单多了。

try {
            Process p = Runtime.getRuntime().exec(
                    "ll /storage/external_storage/sda1");
            String s="";

            BufferedReader in = new BufferedReader(new InputStreamReader(
                    p.getInputStream()));
            String line = null;
            while ((line = in.readLine()) != null) {
                s += line + "\n";
            }
            if(s!=null){
                Toast.makeText(MainActivity.this, s, 0).show();
                test.setText(s);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

如上所示,通Runtime.getRuntime()直接调用系统命令环境,通过Linux命令的方式获取系统信息,但此种方式的权限有限,一般只能读取sdcard里面的文件信息。

public  String runRootCommand(String[] command){ 
         Process process =null; 
         DataOutputStream os =null; 
            String s="";
             try{ 
                process =Runtime.getRuntime().exec("su"); 
                 os =new DataOutputStream(process.getOutputStream()); 
                 for(int i=0;i<command.length;i++)
                 {
                      os.writeBytes(command[i]+"\n");
                 }
                  os.writeBytes("exit\n"); 
                  os.flush(); 
                  process.waitFor(); 

              }catch(Exception e){ 
                  Log.i(“exception:”e.getMessage()); 
                return e.getMessage(); 
              }finally{ 
                        try{ 
                              if(os !=null)
                                   os.close(); 
                                process.destroy(); 
                            }catch(Exception e){ 
                              e.printStackTrace();
                           } 
          }
            return s; 
} 

通过su获取系统root权限,然后通过流的形式,写入命令进行操作。通过这种方式可以轻松的写入系统命令对android系统进行操作。

anyShare分享到:
打赏一下,鼓励Ta创作更多好内容
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

avatar
  订阅  
提醒
普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress