2014-03-07 73 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