android - Firebase 推送通知令牌返回空
问题描述
我正在努力让 Firbase 推送通知正常工作:
我的 Android 清单文件中有以下服务:
<service android:name=".notifications.MyFirebaseMessagingService"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service android:name=".notifications.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
MyFirebaseInstanceIDService 的代码
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);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
preferences.edit().putString(Constants.FIREBASE_TOKEN, refreshedToken).apply();
}
}
我的 StartActivity 包含以下内容
public class StartActivity extends AppCompatActivity {
public static boolean isAppRunning;
private SharedPreferences mSharedPreferences;
private final String TAG="token";
private String token;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
startService(new Intent(this,MyFirebaseInstanceIDService.class));
mSharedPreferences = getSharedPreferences(Constants.FIREBASE_TOKEN, MODE_PRIVATE);
token=mSharedPreferences.getString(Constants.FIREBASE_TOKEN,"");
Log.d(TAG, "token:" + token);
}
}
您会看到我手动启动了服务(不确定是否必须),但问题是令牌始终为空。
解决方案
推荐阅读
- solr - 在 solr 中创建集合时在多个集合之间共享模式
- css - 将所选项目的颜色更改为黑色并在 React Picky 中保持占位符的颜色为灰色
- codeigniter - 消息:内爆():如果复选框值没有任何记录或为空,则传递的参数无效
- c# - 如何处理带有验证的对话中断?
- java - 如何在 eclipse-rcp 中验证更新站点
- sql-server - 什么时候 nvarchar(Max) = nvarchar(4000)?
- python - 2D 数组到 3D 数组的数量,扩展第三维
- xml - xslt 如何获得非键控节点?
- c - 尝试打开驱动器时,在莫哈韦沙漠中打开系统调用返回 -1
- c - 我如何在 sscanf 中使用 %n