2011-01-14 2 views
12

番号、日付、所要時間が&のAndroid通話記録に項目をプログラムで挿入できますが、写真、ラベル、名前も含める方法がわかりません。 追加しているエントリは、同じ番号の既存の連絡先のエントリです。モトローラのデバイスで、数字が既存の連絡先に一致するが、私のHTC Incredibleに何かが見つからない場合は、名前が&と表示されます。プログラム名で表示名と写真を含む通話記録エントリを挿入する方法は?

私は次の操作を行い

...(でも写真をしようとするのか分からなかった)

ContentValues values = new ContentValues(); 
values.put(CallLog.Calls.NUMBER, number); 
values.put(CallLog.Calls.CACHED_NAME, name); 
values.put(CallLog.Calls.CACHED_NUMBER_LABEL, label); 
values.put(CallLog.Calls.DATE, date); 
values.put(CallLog.Calls.DURATION, duration); 
values.put(CallLog.Calls.TYPE, myCallType); 
context.getContentResolver().insert(CallLog.Calls.CONTENT_URI, values); 
+1

HTCでは、キャッシュされた値を持たないnumber-date-duration-typeだけを指定しようとしましたか? – Kobor42

+0

また、似たような質問が回答なしでここで尋ねられました:http://stackoverflow.com/questions/21577391/android-updating-a-call-log-entry-in-htc-custom-dialers-call-log-not -working –

答えて

2

あなたはコールログ自体に写真を挿入することはできません。それらはコールログエントリにリンクされている連絡先に格納されます。これを行う方法の詳細については、ContactsContract.Dataを参照してください。

HTCデバイスが既存の写真で通話履歴を更新していない限り、HTC Senseが通話記録をキャッシュする方法に縛られる可能性があります。私はセンスデバイスにしか現れない同様の問題を見てきました。

通話記録のエントリは、通常、連絡先アプリデータベース(/data/data/com.android.providers.contacts/databases/contacts2.db)のcallsテーブルに保存されます。何らかの理由で、連絡先データが変更された場合でもHTC Senseは既存の通話記録を更新しませんが、他のROMは更新されます。

私は誰かに電話をかけるために株式センス5.0とHTC EVO LTEを使用している場合たとえば、私はエントリはnameフィールドを含むcallsテーブルで作成され、「ジェニー・スミス」として保存しています - それはジェニースミスを格納します。連絡先情報を「Jenny Jones」に更新し、彼女に新しい電話をかけると、新しいエントリがテーブルにJenny Jonesという名前で保存されますが、前のエントリは変更されません。実際のコール履歴画面には、すべてのコールがJenny Jonesとして表示されますが、データベース自体には古い名前があります。

私がテストした他のデバイス(Nexus 5を含む)は、コールログを表示したときにcallsテーブルの前のエントリを更新します。 MotorolaデバイスはNexus 5のように動作し、必要に応じてデータを更新します。

私はデータベースウィザードではありませんが、妥当な知識を持っています。データベース構造の観点から見ると、連絡先固有の情報はそのcallsテーブルに格納されていると奇妙に思えます(実際の連絡先情報のすべてが格納されているデータベースのcontactsテーブルの同じフィールドにリンクされているフィールドはraw_contacts_idです格納されています)、それが実装されている方法です。

1

ハンドセットに連絡先を直接追加し、その連絡先をポイントするコールログを追加した後で、ハンドセットから連絡先を削除することができます。これに関する唯一の問題は、連絡先を削除する前にアプリが強制終了された場合、次のアプリの起動時に何らかのクリーンアップを実装する必要があることです。単純な作業でなければならないことは、非常に面倒です。

+0

私の経験上、連絡先を削除すると、関連付けられた写真も通話履歴から消えてしまいます。通話履歴に写真が保存されていない場合は、連絡先が行います。 – mike47

関連する問題