当我尝试在运行时获取特定android风格的gcm_defaultSenderId时,它无法提供正确的值。
例如:我得到了味道tst,google-services.json看起来像这样
{
"project_info": {
"project_number": "12345678910", 12345678910
"project_id": "api-project-12345678910"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:12345678910:android:xxxxxxxxxxxxx",
"android_client_info": {
"package_name": "do.something.app"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "XXXxxxx-XXXXxxxXXXXXxxxxXXXx"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 1
}
}
}
],
"configuration_version": "1"
}
json文件放在tst / google-services.json中。当我尝试在运行时使用R.string.gcm_defaultSenderId访问gcm_defaultSenderId时,返回的值为:9876543。我希望返回值是project_number,它在构建时设置为gcm_defaultSenderId,就像它在这里写的那样:https://developers.google.com/android/guides/google-services-plugin。有谁知道为什么价值与google-service.json不一样?
答案 0 :(得分:0)
我修好了。我试着像这样得到gcm_defaultSenderId:
R.string.gcm_defaultSenderId
这个值有一个十六进制值,如0X23923912,在我看来,它是指向在构建时(?)设置的正确值的指针。现在看起来Java正在将此值转换为int(?)并返回数字9876543.我通过使用当前上下文来修复此问题:
context.getResources().getString(R.string.gcm_defaultSenderId
现在返回正确的SenderId。