2014-03-07 41 views
0

我正在寻找存储所有电话(元数据)的数据库。Android:存储电话号码的数据库在哪里?

通常我可以在/data/data/com.{name-of-app}/databases/databasefile.db找到数据库。我搜索了很多文件夹,但我没有找到任何数据库文件的电话。

那么这个数据库在哪里?或者如果不存在这样的数据库,则存储电话列表的地点/方式如何?

+4

这个问题似乎是脱离主题,因为它属于http://android.stackexchange.com/ – nKn

+1

脱离主题...... –

+2

非题外话。程序员可以有这个信息的许多用途。 android.stackexchange.com适用于使用android的人,而不是编程。 – ajacian81

回答

0

发现列表中的位置:

/data/data/com.android.providers.contacts/databases/contacts2.db 

→ “主” → “来电”。

2

您不必解析数据库文件。您可以这样读取callLog:

Uri allCalls = Uri.parse("content://call_log/calls"); 
Cursor curse = managedQuery(allCalls, null, null, null, null); 
String num= curse.getString(curse.getColumnIndex(CallLog.Calls.NUMBER)); 

请检查CallLog.Calls文档。你可以找到你现在看到的所有选项:

http://developer.android.com/reference/android/provider/CallLog.Calls.html

+0

您的解决方案将适用于应用程序,但我需要真实的数据库来分析它。 (将其复制为“adb pull”) 也许我的问题在这一点上还不够清楚。 – CFP

+0

我想没有规则的.dbs位置。这将取决于您的手机型号和Android版本。您的数据库名称也可以更改。也许你应该使用grep – Goot

+0

我查看了所有数据库中的每个条目,并在/data/data/com.android.providers.contacts/databases/contacts2.db→main→calls中找到了它。 – CFP