我尝试在Android中编写代码以从我自己的应用程序连接到其他应用程序数据库,但我无法连接它,我得到 SQLiteCantOpenDatabaseException 。
mycode的:
package com.example.testdbconnection;
import android.os.Bundle;
import android.app.Activity;
import android.database.sqlite.SQLiteCantOpenDatabaseException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
public class MainActivity extends Activity
{
String file_url = "/data/data/com.android.keychain/databases/";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try
{
SQLiteDatabase sdb = SQLiteDatabase.openDatabase(file_url, null,SQLiteDatabase.OPEN_READWRITE);
if(sdb==null)
{
Log.d("Database not Connected", "....");
}
else
{
Log.d("Database Connected", "....");
}
}
catch(SQLiteCantOpenDatabaseException e)
{
Log.d("Database not Connected", "....");
}
}}
我想如果我能够根植我的设备那么可以吗?但是这对于生根设备也不好,因为它只能在我的设备中工作,然后它将无法在其他设备中工作。
请建议我一些解决方案,我该怎么办?
答案 0 :(得分:0)
您无法访问其他应用程序的私人数据目录(除非设备已植根且您的应用具有超级用户权限)。
答案 1 :(得分:0)
你不能这样做。在这种情况下,您想要使用的是内容提供商(即使我不知道其他应用程序是否为您提供内容提供商)。您可以看到如何使用它的示例docs