Don*_*ive 4 java android firebase firebase-cloud-messaging
我跟着这个在Firebase注册我的deivce
在这里,我试图显示并保存通知令牌
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
storeToken(refreshedToken);
}
private void storeToken(String token) {
//saving the token on shared preferences
SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试注册时,总是说Token Token not generated 形成
MainActivity
所以这里我的应用程序连接到Firebase ..我知道这FirebaseInstanceIdService是不推荐的我也试过这个
public class MyFirebaseInstanceIDService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onNewToken(String refreshedToken) {
refreshedToken = FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
storeToken(refreshedToken);
}
private void storeToken(String token) {
//saving the token on shared preferences
SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
}
}
Run Code Online (Sandbox Code Playgroud)
但仍然没有生成相同的标记
只需将其添加到您的代码中即可。
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
SharedPreferences prefs = getSharedPreferences("TOKEN_PREF", MODE_PRIVATE);
String token = prefs.getString("token", "");
Log.e("NEW_INACTIVITY_TOKEN", token);
if (TextUtils.isEmpty(token)) {
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken", newToken);
SharedPreferences.Editor editor = getSharedPreferences("TOKEN_PREF", MODE_PRIVATE).edit();
if (token!=null){
editor.putString("token", newToken);
editor.apply();
}
}
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
首次安装和运行该应用程序时,将调用一次Firebase令牌,因此,一旦使用共享的Prefs保存数据,就忽略保存数据或运行此活动/服务。
| 归档时间: |
|
| 查看次数: |
9000 次 |
| 最近记录: |