0

我必须开发一个从 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)出错时,才会出现错误。但是当我在其他语句中出错时(例如数据库而不是数据库),没有错误出现。这意味着 exec 只触发第一个语句,其他两个语句不会被触发。

4

1 回答 1

0

exec()当它设法启动该过程时成功。

要找出sqlite3进程的返回值,你必须使用Process对象等待它结束,然后读取它的退出值

于 2017-03-28T15:28:22.860 回答