3

SyncAdatperアプリの連絡先を電話の連絡先に追加するために自分で作成しました。プレゼンス ステータスを除いて、すべて (画像、ステータス、カスタム アクションなど) が機能しています。

グーグルによると:

プレゼンス ステータスは本質的に揮発性であるため、コンテンツ プロバイダは、このフィールドを長期ストレージに保存しないことを選択する場合があります。

そのため、連絡先に常に存在を維持する方法がわかりません。カーソル内の存在を更新するためのコードは次のとおりです。

ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(ContactsContract.StatusUpdates.CONTENT_URI);
builder.withValue(ContactsContract.StatusUpdates.DATA_ID, c.getLong(1));
builder.withValue(ContactsContract.StatusUpdates.STATUS, status);
builder.withValue(ContactsContract.StatusUpdates.STATUS_RES_PACKAGE, "ar.com.indiesoftware.ps3trophies");
builder.withValue(ContactsContract.StatusUpdates.STATUS_LABEL, R.string.app_name);
builder.withValue(ContactsContract.StatusUpdates.STATUS_ICON, R.drawable.alltrophies);

builder.withValue(ContactsContract.StatusUpdates.PROTOCOL, Im.PROTOCOL_CUSTOM);
builder.withValue(ContactsContract.StatusUpdates.CUSTOM_PROTOCOL, "PS3SyncAdapter");
builder.withValue(ContactsContract.StatusUpdates.IM_ACCOUNT, username);
builder.withValue(ContactsContract.StatusUpdates.IM_HANDLE, username);
builder.withValue(ContactsContract.StatusUpdates.PRESENCE, ContactsContract.StatusUpdates.AVAILABLE);

builder.withValue(ContactsContract.StatusUpdates.STATUS_TIMESTAMP, System.currentTimeMillis());
operationList.add(builder.build());

緑色のドットが表示されますが、連絡先画面を離れて短時間 (秒) で戻ると、「時々」緑色のドットが表示されなくなります。

これを解決するために私にできることはありますか?

4

1 に答える 1