Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php GCM下游Android通知_Php_Android_Google Cloud Messaging - Fatal编程技术网

Php GCM下游Android通知

Php GCM下游Android通知,php,android,google-cloud-messaging,Php,Android,Google Cloud Messaging,我已经创建了我的Android应用程序,以便从GCM获得注册Id并接收下游通知。注册部分在这里工作得很好。(RegID是通过打开一封电子邮件发送给我的,我正在我的第三方服务器中对其进行硬编码。)但问题是,当我从服务器发送消息时,我的应用程序从未收到它。 下面是我的代码 NotificationMainActivity-(在GCM中成功注册应用程序) public class notificationmain活动扩展活动{ 公共静态最终字符串EXTRA_MESSAGE=“MESSAGE”; 公共

我已经创建了我的Android应用程序,以便从GCM获得注册Id并接收下游通知。注册部分在这里工作得很好。(RegID是通过打开一封电子邮件发送给我的,我正在我的第三方服务器中对其进行硬编码。)但问题是,当我从服务器发送消息时,我的应用程序从未收到它。 下面是我的代码

NotificationMainActivity-(在GCM中成功注册应用程序)

public class notificationmain活动扩展活动{
公共静态最终字符串EXTRA_MESSAGE=“MESSAGE”;
公共静态最终字符串属性\u REG\u ID=“注册\u ID”;
私有静态最终字符串属性\u APP\u VERSION=“appVersion”;
专用最终静态整数播放服务解析请求=9000;
字符串发送者_ID=“1030512389658”;
静态最终字符串标记=“Kanrich GCM通知”;
公共文本视图mDisplay;
谷歌云通讯gcm;
AtomicInteger msgId=新的AtomicInteger();
共享引用优先权;
语境;
字符串寄存器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u notification\u main);
mDisplay=(TextView)findViewById(R.id.regID);
context=getApplicationContext();
//检查设备的播放服务APK。如果检查成功,请继续
//GCM注册。
如果(checkPlayServices()){
gcm=GoogleCloudMessaging.getInstance(this);
regid=getRegistrationId(上下文);
System.out.println(“*******************************************************************************************************************”);
if(regid.isEmpty()){
registerInBackground();
}
}否则{
i(标记“找不到有效的Google Play服务APK”);
}
}
@凌驾
受保护的void onResume(){
super.onResume();
checkPlayServices();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单通知主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
//获取注册ID(如果存在)。。
私有字符串getRegistrationId(上下文){
最终SharedReferences prefs=getGCMPreferences(上下文);
String registrationId=prefs.getString(PROPERTY_REG_ID,“”);
if(registrationId.isEmpty()){
Log.i(标记“未找到注册”);
返回“”;
}
//检查应用程序是否已更新;如果已更新,则必须清除注册ID
//因为现有的注册ID不能保证使用
//新的应用程序版本。
int registeredVersion=prefs.getInt(属性\应用\版本,整数.MIN \值);
int currentVersion=getAppVersion(上下文);
if(registeredVersion!=当前版本){
Log.i(标记“应用程序版本已更改”);
返回“”;
}
返回注册ID;
}
//获取应用程序版本..(了解应用程序是否已更新..如果是,注册ID为空,.)
私有静态int getAppVersion(上下文){
试一试{
PackageInfo PackageInfo=context.getPackageManager()
.getPackageInfo(context.getPackageName(),0);
返回packageInfo.versionCode;
}catch(nameNotFounde异常){
//不应该发生
抛出新的RuntimeException(“无法获取包名:+e”);
}
}
//在后台注册。。
私有无效注册表背景(){
新建异步任务(){
@凌驾
受保护的字符串背景(无效…无效){
字符串msg=“”;
试一试{
如果(gcm==null){
gcm=GoogleCloudMessaging.getInstance(上下文);
}
regid=gcm.寄存器(发送方ID);
msg=“设备已注册,注册ID=“+regid;
System.out.println(msg);
storeRegistrationId(上下文,regid);
}
捕获(IOEX异常){
msg=“错误:”+ex.getMessage();
}
返回味精;
}
@凌驾
受保护的void onPostExecute(字符串结果){
mDisplay.append(结果+“\n”);
}
}.execute();
}
//检查谷歌播放服务。
私有布尔值checkPlayServices(){
int-resultCode=GooglePlayServicesUtil.isgoogleplayservicesavaailable(this);
if(resultCode!=ConnectionResult.SUCCESS){
if(GooglePlayServicesUtil.isUserRecoverableError(resultCode)){
GooglePlayServicesUtil.getErrorDialog(结果代码,此,
播放服务解决方案请求)。显示();
}否则{
Log.i(标记“此设备不受支持”);
完成();
}
返回false;
}
返回true;
}
//共享首选项。。。
私有SharedReferences getGCMPreferences(上下文){
返回GetSharedReferences(NotificationMainActivity.class.getSimpleName(),
上下文。模式(私人);
}
私有void storeRegistrationId(上下文上下文,字符串regId){