A Day In The Life

とあるプログラマの備忘録

Parcelable実装してください。

GroupChatInvitationクラスはなぜParcelableインターフェースを実装してないのだろうか?

writeToParcelメソッドを持っているしCREATORフィールドもあるので振る舞い的にはParcelableだと思うんですけどねぇ...。

Parcelableを実装してくれるとIntentに直接オブジェクトをほりこめるから何かと便利なんですが...。

具体的にはこんなことやりたいのですが今のところできません。

gtalkSession.addGroupChatInvitationListener(new IGroupChatInvitationListener.Stub() {
  @Override
  public void onInvitationReceived(GroupChatInvitation groupchatinvitation)
      throws DeadObjectException {
    //groupchatinvitationがParcelableじゃないからエラーになります。
    gtalkSession.sendDataMessage(gtalkSession.getUsername(),
      new Intent(GROUP_CHAT_INVITATION_ACTION)
        .putExtra("groupChatInvitation", groupchatinvitation));
  }
});

修正していただけるとうれしいです。Google様。



4月28日追記:

sendDataMessageはどのみちStringデータしか送れないのでParcelable実装してくれてもそのまま送れないんですね。

Stringしか送れないということはファイル転送する時はBase64エンコードしないとダメですね。