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