如何在我自己的Android应用程序中连接其他应用程序数据库?

时间:2014-06-07 06:33:12

标签: android sqlite root

我尝试在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", "....");

 }  
}}

我想如果我能够根植我的设备那么可以吗?但是这对于生根设备也不好,因为它只能在我的设备中工作,然后它将无法在其他设备中工作。

请建议我一些解决方案,我该怎么办?

2 个答案:

答案 0 :(得分:0)

无法访问其他应用程序的私人数据目录(除非设备已植根且您的应用具有超级用户权限)。

答案 1 :(得分:0)

你不能这样做。在这种情况下,您想要使用的是内容提供商(即使我不知道其他应用程序是否为您提供内容提供商)。您可以看到如何使用它的示例docs