android - 如何访问 Skype 应用程序的 main.db 以在示例 Android 应用程序中显示最近的选项卡日志?

标签 android android-contentprovider skype android-database

我正在尝试制作一个 Android 应用程序,我想在其中显示 Skype 用户的日志/通话记录(最近选项卡)。

据我所知,Skype 将所有联系人存储在服务器中,并且在第一次登录后,它会使用本地存储中的同步适配器同步所有联系人,即联系人数据库,但它不会同步日志。所有的日志都存储在

/data/data/com.skype.raider/files/用户名/main.db

有什么方法可以让我们访问这个数据库,以便在Android App中显示当前登录的skype用户的通话记录?如果有任何方法可以访问数据库,它也可以在非 root 手机上使用吗?

最佳答案

任何应用程序的数据库文件都存储在“data/data/package_name/databases”位置的数据目录中,如果设备未root,则无法访问该目录。如您所知,在 Skype 的情况下,main.db 文件存储在“/data/data/com.skype.raider/files/user-name/main.db”。

访问它的唯一方法是对设备进行 root。 生根设备后的步骤是,

  1. 您的应用应该从 super 用户那里获得根访问权限。
  2. 在“data/data/package_name/files/shared.xml”中找到并解析“shared.xml”文件。在此 xml 文件中,从用户名中获取用户名。这样您现在就有了数据库的路径。
  3. 由于您将无法访问 main.db 文件,因此您必须首先运行命令“chmod 777 filepath”,这样您就可以完全访问该文件。 (要通过您的应用程序运行命令,请查看“RootTools”库)
  4. 现在您可以创建自己的 DBHelper 类或使用 SQLiteDatabase.openDatabse(path, cursorFactory, flags) 直接访问数据库;

请记住,对于所有这一切,设备必须已获得 root 权限。

关于android - 如何访问 Skype 应用程序的 main.db 以在示例 Android 应用程序中显示最近的选项卡日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929299/

相关文章:

android - 如果我显示一个触发电话调用的按钮,是否可以向用户隐藏电话号码?

android - 子类房间实体

android - 剪辑或删除折线谷歌地图 v2 的一部分

android - 如何将 Address 对象数组传递给另一个 Activity

android - 使用 Android 联系人应用程序编辑由自定义 ContentProvider 添加的原始联系人

Android Contentprovider - 在插入方法中更新

android - 按数据 ID 更新联系人数据

javascript - 如何在 Skype Web SDK 中授权

iphone - Skype 整合问题

python - 需要一个使用 skype4py 发送即时消息的 python 脚本