मैं एडीबी आदेशों को प्रोग्राम केके दौरान त्रुटि ADB आदेश को क्रियान्वित करने को प्रोग्राम के
यहाँ निष्पादित करने के लिए कोशिश कर रहा हूँ मेरी कोड है:
File f = new File(Environment.getExternalStorageDirectory(), "screen" + System.currentTimeMillis() + ".png");
new ExecuteCommand(MainActivity.this).execute("adb shell screencap -p "
+ Environment.getExternalStorageDirectory().getPath() +
"/" + "screen" + System.currentTimeMillis() + ".png");
ExecuteCommand कक्षा: लॉग में
public class ExecuteCommand extends AsyncTask<String, String, String> {
Context mContext=null;
public ExecuteCommand(Context _ctx)
{
mContext =_ctx;
}
ProgressDialog progressdailog;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressdailog = ProgressDialog.show(mContext,
"Executing", "Please Wait");
}
@Override
protected String doInBackground(String... params) {
Process p;
StringBuffer output = new StringBuffer();
try {
p = Runtime.getRuntime().exec(params[0]);
BufferedReader reader = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
p.waitFor();
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
String response = output.toString();
return response;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progressdailog.dismiss();
Log.e("Output", result);
}
}
समस्या:
07-31 15: 26: 31.832 18 716-18716/com.example ई/आउटपुट: 'टीसीपी: 5038' * डिमन नहीं चल रहा है। इसे पोर्ट 5038 *
मैं स्क्रीनशॉट नहीं ले पा रहा हूं, लेकिन अगर मैं कमांड प्रॉम्प्ट पर एक ही कमांड चलाता हूं तो यह ठीक काम कर रहा है।
लेकिन अगर मैं निष्पादित
new ExecuteCommand(MainActivity.this).execute("ls");
इस ठीक काम करता है। कमांड में समस्या कहां है?
[exec() एडीबी डिमन क्यों शुरू करता है?] (Https://stackoverflow.com/a/34112381/3290339) – Onik