1

プレゼンス アイコンを使用して、カスタム ユーザーにプレゼンスを表示しようとしました。何をしても、挿入に失敗したというエラーが発生したか、連絡先にプレゼンスが表示されませんでした。

   values.put(StatusUpdates.DATA_ID, profileId);
   values.put(StatusUpdates.STATUS, user.getStatus());
   values.put(StatusUpdates.PROTOCOL, Im.PROTOCOL_CUSTOM);
   values.put(StatusUpdates.CUSTOM_PROTOCOL, CUSTOM_IM_PROTOCOL);
   values.put(StatusUpdates.IM_ACCOUNT, username);
   values.put(StatusUpdates.IM_HANDLE, user.getuserID());
   values.put(StatusUpdates.STATUS_RES_PACKAGE, context.getPackageName());
   values.put(StatusUpdates.STATUS_ICON, R.drawable.tray_icon);
   values.put(StatusUpdates.STATUS_LABEL, R.string.app_name);
   values.put(StatusUpdates.PRESENCE, StatusUpdates.AVAILABLE);

解決策を持っている人はいますか?

4

2 に答える 2

1

2.2、権限などの特別な扱いを含むガイドについては、以下も参照してください。

http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1

http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2

それらのソースは入手可能です:

https://github.com/c99koder/lastfm-android/

于 2012-05-13T07:39:09.597 に答える
0

この行は疑わしいようです:

values.put(StatusUpdates.DATA_ID, profileId);

プロファイル ID とは何ですか? 指定する場合、StatusUpdates.DATA_ID は「データ」テーブルの IM 行の _ID にする必要があります。ステータスを挿入する前に、その行が必要です。

一般的な方法は、「データ」テーブルに行を作成し、IM_PROTOCOL と IM_HANDLE (Im.DATA と照合される) を指定しますが、状態更新の挿入では DATA_ID を指定しないままにします。ContactsProvider は、ステータスをデータ行に自動的に一致させ、ルックアップ クエリを保存します。

また、可能であれば、ステータスに bulkInsert を使用してください。それは物事を非常にスピードアップします。

于 2012-04-16T15:12:47.347 に答える