Android模擬特殊Action的Broadcast


execShell("am broadcast -a android.net.conn.CONNECTIVITY_CHANGE -e networkInfo \"NetworkInfo: type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: (none), roaming: false, failover: false, isAvailable: true\" com.tencent.mobileqq")
public String execShell(String cmd){
    	try{  
            //權限設置
    		Process p = Runtime.getRuntime().exec("su");  
            //獲取輸出流
            OutputStream outputStream = p.getOutputStream();
            DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
            //將命令寫入
            dataOutputStream.writeBytes(cmd);
            //提交命令
            dataOutputStream.flush();
            //關閉流操作
            dataOutputStream.close();
            outputStream.close();
            
            InputStream inputstream = p.getInputStream();
    		InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
    		BufferedReader bufferedreader = new BufferedReader(inputstreamreader);


    		// read the ls output


    		String line = "";
    		StringBuilder sb = new StringBuilder(line);
    		while ((line = bufferedreader.readLine()) != null) {
    		//System.out.println(line);
    		sb.append(line);
    		sb.append('\n');
    		}
    		return sb.toString();
    	}  
    	catch(Throwable t)  
       	{
		t.printStackTrace();  
       	}
    	return "";
    	
}


代碼中執行adb shell命令.發送特殊action的廣播(直接sendBroadcast會有權限問題).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章