2017-03-03 36 views
1

私は自分のアプリケーションサーバーから私のアプリにプッシュ通知を送信しようとしていますが、私はFirebaseInstanceIdServiceを通してFCM登録トークンを取得していません。ここで私はGenymotionの個人版エミュレータを使用しています。私のエミュレータAPIの問題ですか?ここAndroid Firebase FCM登録トークンを取得してみませんか?

ここFirebaseInstanceIdService

public class FcmInstanceIdService extends FirebaseInstanceIdService { 

@Override 
public void onTokenRefresh() { 
    String recent_token = FirebaseInstanceId.getInstance().getToken(); 

    SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString(getString(R.string.FCM_TOKEN),recent_token); 
    editor.commit(); 
} 

} あるMainActivity

public class MainActivity extends AppCompatActivity { 

String url = "http://myurl.fcm_insert.php"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button bt = (Button) findViewById(R.id.button2); 

    bt.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE); 
      final String token = sharedPreferences.getString(getString(R.string.FCM_TOKEN),""); 

      StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 

        Toast.makeText(MainActivity.this,"Success",Toast.LENGTH_SHORT).show(); 
       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Log.d("Response",error.toString()); 
        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show(); 
       } 
      }) 
      { 
       @Override 
       protected Map<String, String> getParams() throws AuthFailureError { 
        Map<String,String> params = new HashMap<String, String>(); 
        params.put("token",token); 
        return params; 
       } 
      } ; 
      Singletone.getSingletone(MainActivity.this).addToRequest(stringRequest); 
     } 
    }); 
} 
} 

は、それが唯一のサーバーにデフォルト値を送信していますです。

答えて

0

これはGenymotionがデフォルトでGoogle Playサービスを持っていないために起こります。あなたはすでにそれはあなたの原因が起こっているあなたは正しいです、あなたのマニフェストファイルでサービスを追加した場合

関連する問題