2012-09-03 1 views
0

그래서 내 C# 서버에서 gcm android 응용 프로그램으로 데이터를 보내려고합니다. 그것은 (작업의 하루 종일 후) 잘 작동하지만 실제로 어떻게 일부 데이터를 보내고 (그것을받는) 알아낼 수 없습니다.C# 서버에서 GCM 앱으로 데이터를 전달할 수 없습니다.

 using (var wc = new WebClient()) 
     { 
      wc.Headers.Add("Authorization", "key=" + "key"); 
      var nameValues = new NameValueCollection 
        { 
         {"registration_id", "id"}, 
         {"collapse_key", Guid.NewGuid().ToString()}, 
         {"data.payload", "works!!!!!!"}, 
         {"message", "YES it works!!!"} 
        }; 
      var resp = wc.UploadValues("https://android.googleapis.com/gcm/send",nameValues); 
      var respMessage = Encoding.Default.GetString(resp); 
      MessageBox.Show("Got respose from GCM: " + respMessage); 
     } 

및 안드로이드 응용 프로그램 내 onMessage 메소드에 난이 : 내 C# 측면에서 나는이

 protected void onMessage(Context arg0, Intent arg1) { 
    Log.i("Registration", "Got a message!"); 
    Log.i("Registration", arg0.toString() + " " + arg1.toString()); 
    String score = arg1.getExtras().getString("message"); 
    score=arg1.getExtras().getString("data.payload"); 

문제는 내 점수 문자열은 항상 null 점이다 : S

어떤 아이디어 ?

답변

1

"data.Foo"라는 POST 필드가 "Foo"라고하는 의도 된 추가 정보로 전달된다는 규칙이 있습니다. 여분의 "페이로드"를 검색하려면 "data.payload"를 전달하고 arg1.getStringExtra ("payload")를 검색해야합니다.

그건 그렇고, 점수를 두 번 - "메시지"및 "data.payload"로 두 번 가져옵니다. 어느 쪽도 맞지 않습니다.

+0

대단히 감사합니다! – gabrjan

관련 문제