【问题标题】:Android/Qt Access DatabasesAndroid/Qt 访问数据库
【发布时间】:2013-08-20 17:32:18
【问题描述】:

我需要访问该文件,

/data/data/com.google.android.music/databases/music.db

目前已被拒绝。我正在使用 Qt 来定位 Android 平台。我认为仅使用 Qt 的方法来读取数据库比使用 JNI/NDK 更容易。

我认为是权限:默认权限,对我来说不起作用,如下-

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

非常感谢您的帮助!

【问题讨论】:

    标签: java android qt permissions


    【解决方案1】:

    Android 不允许使用其他应用程序的私有文件。没有权限这样做。您必须使用正确的 ContentResolver 来访问该数据。而且我认为唯一的方法是通过 JNI 胶水代码使用公共 Java API。

    阅读此内容以了解有关如何使用该 ContentResolver 的详细信息:Querying Google Play Music database in Android

    【讨论】:

    • 嗯。我尝试过这个。我在获取应用程序的上下文时遇到了问题。
    • 你的意思是android.content.Context?你在哪里需要它?在您的 C/C++ 实现中?
    • 是的。就 JNI 而言,我可以得到一个需要 Context 作为参数的函数,如果我可以通过它将起作用。它适用于纯 Java,但我无法将 Context 传递进去,也无法以其他任何方式进行。这就是为什么我试图手动拉数据库。
    • 我不确定我是否理解,反正我看不到上下文的问题。只需在应用程序启动后立即将其保存在 Java 中的静态变量中。然后,您从 C++ 调用的 Java 方法将从该静态变量中获取对 Context 的引用。您可以从 Application 类的子类或您想要的任何地方保存它。我已经做过很多次了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多