Ich verwende die SendBird-Chat-API in meiner Android-App, und ich habe Probleme, wenn ich mehr als einen Wert in Metadaten erhalte.Android - SendBird-Metadaten-Problem
Das ist die group Erstellung von Metadaten ist:
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;
}
Wenn ich die Karte auf onResult laufen, werde ich "Daniel" und "Else Street" erhalten. So weit so gut, oder? Jetzt
Das Problem ist, wenn ich Metadaten erhalten müssen:
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 wird 0 zurückkehrt, wenn es tatsächlich zurückkehrt sollte 2. Das Problem ist, dass, wenn ich entfernen Adresse oder Eigentümer, Es gibt 1 zurück, was korrekt ist.
Hey bro, ich aktualisiert auf 3.0.2 in meinem build.gradle versuchte es wieder und funktioniert immer noch nicht und ich mache das genau so, wie es in der Dokumentation ist. Kannst du mir bitte helfen?): –
Rufen Sie getMetaData auf, nachdem createMetaData abgeschlossen wurde, indem Sie den Callback-Handler aufrufen? –
Können Sie sich den Code ansehen? Gehe zu initGroupChannel() Methode http://pastebin.com/SED3Qydp –