2016-09-16 2 views
0

AndroidアプリでSendBirdチャットAPIを使用しています。メタデータに複数の値が設定されているときに問題が発生しています。Android - SendBirdメタデータの問題

groupchannelメタデータの作成です:私ははonResultでマップを反復した場合、私は「ダニエル」を取得し、「エルスストリート」になる

final HashMap<String, String> data = new HashMap<String, String>(); 
     data.put("owner", "Daniel"); 
     data.put("address", "Else Street"); 

    groupChannel.createMetaData(data, new BaseChannel.MetaDataHandler() { 
          @Override 
          public void onResult(Map<String, String> map, SendBirdException e) { 
           if(e != null) { 
            Toast.makeText(ctx, "" + e.getCode() + ":" + e.getMessage(), Toast.LENGTH_SHORT).show(); 
            return; 
           } 

。これまでのところ、すっごいいいよね?私が取得する必要があるとき

問題は今のメタデータ:それは実際に問題がある2を返す必要があるとき

List<String> keys = new ArrayList<String>(); 

        keys.add("owner"); 
        keys.add("address"); 
mGroupChannel.getMetaData(keys, new BaseChannel.MetaDataHandler() { 
         @Override 
         public void onResult(Map<String, String> map, SendBirdException e) { 
          if (e != null) { 
           Toast.makeText(ChatActivity.this, "" + e.getCode() + ":" + e.getMessage(), Toast.LENGTH_SHORT).show(); 
           return; 
          } 
          Toast.makeText(getBaseContext(), String.valueOf(map.size()), Toast.LENGTH_LONG).show(); 
         } 
        }); 

map.size()methosは0を返していること、私は住所や所有者を削除する場合は、それは正しい1を返します。

答えて

0

3.0.0と同様の問題がありましたが、修正されました。

貼り付けたコードについては、次のようになります。

mGroupChannel.createMetaData(data, new BaseChannel.MetaDataHandler() { 
    @Override 
    public void onResult(Map<String, String> map, SendBirdException e) { 
     // Toast.makeText(getContext(), String.valueOf(map.size()), Toast.LENGTH_LONG).show(); 

     List<String> keys = new ArrayList<String>(); 

     keys.add("address"); 
     keys.add("owner"); 

     mGroupChannel.getMetaData(keys, new BaseChannel.MetaDataHandler() { 
      @Override 
      public void onResult(Map<String, String> map, SendBirdException e) { 
       Toast.makeText(getContext(), String.valueOf(map.size()), Toast.LENGTH_LONG).show(); 
      } 
     }); 
    } 
}); 

それともcreateMetaDatagetMetaDataを呼び出すことを確認します何が終了する罰金になります。

+0

私のbuild.gradleで3.0.2に更新しましたが、もう一度やり直してもうまくいきません。ドキュメントにあるとおり、まったく同じことをやっています。手伝ってくれませんか? ): –

+0

createMetaDataがコールバックハンドラを呼び出してファイナライズされた後にgetMetaDataを呼び出しますか? –

+0

コードをご覧になれますか? initGroupChannel()メソッドに行きますhttp://pastebin.com/SED3Qydp –