RunTime.exec 没有 return 过程错误
RunTime.exec does not return errors from the process
我必须开发一个从 whatsapp 数据库读取消息的应用程序。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view){
try{
Process p = Runtime.getRuntime.exec(new String[] {"sqlite3",
"/data/data/com.whatsapp/databases/msgstore.db",
"select * from messages;"});
}
catch(Exception e){
textView4.setText(e.getMessage());
}
}
}
只有当我用sqlite3出错时(例如sqlite34而不是sqlite3),才会出现错误。但是当我在其他语句中出错时(例如,用 databs 代替 databases),不会出现错误。这意味着 exec 只触发第一个语句,不会触发其他两个语句。
exec()
成功启动该进程。
要找出sqlite3
进程的return值,你必须使用Process
对象来wait for it to end, and then to read its exit value。
我必须开发一个从 whatsapp 数据库读取消息的应用程序。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view){
try{
Process p = Runtime.getRuntime.exec(new String[] {"sqlite3",
"/data/data/com.whatsapp/databases/msgstore.db",
"select * from messages;"});
}
catch(Exception e){
textView4.setText(e.getMessage());
}
}
}
只有当我用sqlite3出错时(例如sqlite34而不是sqlite3),才会出现错误。但是当我在其他语句中出错时(例如,用 databs 代替 databases),不会出现错误。这意味着 exec 只触发第一个语句,不会触发其他两个语句。
exec()
成功启动该进程。
要找出sqlite3
进程的return值,你必须使用Process
对象来wait for it to end, and then to read its exit value。