0

私のアプリケーションが使用しているデータベースが直接所有していない、既存のデータベースにアクセスできるかどうか誰か教えてください。

私のコードは、アプリケーションによって実行時に作成されたデータベースにアクセスするために正常に動作しますが、次のエラーで失敗します:

android.database.sqlite.SQLiteCantOpenDatabaseException: 不明なエラー (コード 14): データベースを開けませんでした 不明なエラー (コード 14): データベース null を開けませんでした

Android セキュリティはアプリケーション ID (PID) をチェックすることでアクセスを防いでいると読みましたが、データにアクセス/変更する必要があるデータベースのアプリケーションを作成していません。

4

4 に答える 4

1

一般的にはできません。ルート化されたデバイスでは、権限をルートに昇格させれば、すべての場所にアクセスできます。

于 2013-01-20T13:34:45.133 に答える
0

アプリがこれを提供する場合は、コンテンツプロバイダーを使用する必要があります:http://developer.android.com/guide/topics/providers/content-providers.html

于 2013-01-20T13:39:02.017 に答える
0

いいえ、他のアプリデータベースにアクセスすることはできません。データベースファイルは/data/data/yourpackage.yourapp/databaseに保存されます。ルート権限を取得されていない電話では、ここでファイルシステムにアクセスすることさえできません。ルート権限を取得された電話では、uがそれを実行できるかどうかわかりません。

他のアプリケーションとデータを共有したり、他のアプリデータベースにアクセスしたりする場合は、この目的のためのコンテンツプロバイダーがあります。コンテンツプロバイダーのドキュメントをお読みください。

于 2013-01-20T13:43:25.070 に答える
0

いいえ、通常はできません。

于 2013-01-20T14:00:49.123 に答える