4

一部のユーザーは、Samsung デバイス (GT-N7000 & SGH-I777) で CallLog.Calls のアプリでクエリを実行すると、テキストメッセージも表示されると報告しています。

のダンプを作成しましたがCallLog ContentProvider、Android API で言及されておらず、どのテスト デバイスでも返されない余分なフィールドがあるようです。

具体的には、ダンプを調べると、 というフィールドがありlogtype、通話の場合は 100、テキスト メッセージの場合は 300 に等しいようです。このフィールドをオンラインで検索したところ、このフィールドの値に関する公式ドキュメントは見つかりませんでしたが、主にクラッシュ スタック トレースを介して、このフィールドの他の多くの可能な値に出会いましたContentProvider

logtype=300 または logtype=200

logtype=100 OR logtype=500 OR logtype=800 OR logtype=900 OR logtype=1000

したがって、テキスト メッセージには 300/200 が使用され、通話には 100/500/800/900/1000 が使用されると想定していますが、500/800/900/1000 が使用されているのを見たことがないため、わかりません。レポート ユーザーのデバイスで。

logtype の可能な値とその意味について、誰かが光を当てることができますか?

4

4 に答える 4

1

CallLog.Calls列をクエリすることで暫定的に解決できましlogtypeた。例外がスローされた場合は通常どおりクエリを実行し、それ以外の場合は選択してクエリを実行します(logtype=100 OR logtype=500)

これは私の報告ユーザーには機能しているようですがlogtype、意味がわからない可能性のある値が多数あるため、すべてのベースをカバーしているかどうかはまだわかりません.

誰かがより良い答えを持っている場合は、追加してください。

于 2012-09-23T08:51:32.550 に答える
0

sgs2 デバイスをデバッグしていたときに、これを見つけました。誰かに役立つかもしれません。

SELECT number, name, type, date, duration FROM logs WHERE (
logs.logtype=100 OR 
logs.logtype=110 OR 
logs.logtype=900 OR 
logs.logtype=500 OR 
logs.logtype=800 OR 
logs.logtype=120 OR 
logs.logtype=510 OR 
logs.logtype=1000 OR 
(logs.logtype=200 AND number NOT IN (SELECT number FROM logs WHERE number LIKE '%@%')) OR logs.logtype=300) 
AND ((type != 4)) AND (logtype=100 OR logtype=500))) 
ORDER BY date DESC
于 2013-11-23T12:38:14.367 に答える