1. 程式人生 > >Android Gcm 推送時,第一次獲取到registrationID為null的問題解決

Android Gcm 推送時,第一次獲取到registrationID為null的問題解決

     之前一直沒注意到,在使用谷歌gcm訊息推送服務時,第一次執行,註冊谷歌服務,拿到的registrationID是空的,導致傳給後臺服務就是空的,無法接收到資訊,大概原因是你向谷歌註冊服務,要想立馬獲取registrationID的話,是不確定的,你需要啟動一個執行緒,嘗試執行幾次,知道獲取到的registrationID不為空,再傳給後臺服務,如下程式碼:給遇到相同問題的同學一個建議,謝謝閱讀

new Thread() {
	@Override
	public void run() {
		int time = 30;
		while (time > 0) {
		time--;
                //registrationID不一定立即返回給你,你需要開啟執行緒去查詢,知道不為空為止
		regId = GCMRegistrar.getRegistrationId(LoginActivity.this);

		if (!(regId.equals("") || regId == null)) {
			// 1 表示 iPhone 2 表示android
			String groupName = APIDoc.getUserDocCaptain().getGroupName4Account(account);
			String deviceId = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId();
			TradeResult tradeResult = TradeAPI.getInstance().setRegistDeviceID(ClientAPI.getAeid(),String.valueOf(account), groupName, regId, 2, deviceId,ConfigurationUtil.getInstance().getVersion());//將registrationID傳給後臺

			if (tradeResult.isSucceed()) {
				System.out.println("-----" + time);
				return;
			}
		}

		try {
			sleep(1000 * 3);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		}

	}
}.start();

相關推薦

Android Gcm ,第一獲取registrationIDnull的問題解決

     之前一直沒注意到,在使用谷歌gcm訊息推送服務時,第一次執行,註冊谷歌服務,拿到的registrationID是空的,導致傳給後臺服務就是空的,無法接收到資訊,大概原因是你向谷歌註冊服務,要想立馬獲取registrationID的話,是不確定的,你需要啟動一個執行緒

關於ionic3 極光 Registration ID第一獲取不到

問題: 關於Registration ID第一次獲取不到,可以用setTimeout延遲後獲取。 ios開發環境能收到通知訊息,生產模式接收不到通知訊息。 ios釋出到app store上,下下來的

Android 關於極光測試和正式的問題

極光推送並沒有提供區分測試和正式的欄位,如果想區分測試和正式的環境,可以重新註冊一個,在重新註冊時,會讓你重新填寫包名, release: com.jpush.test debug: com.jpush.test.debug 然後我們配置gradle,

Android 谷歌gcm所需要的埠

          如果有人做過谷歌gcm的推送功能,就會想知道,如果將註冊訪問谷歌網站的服務放到伺服器上,為了安全起見,就會要求只能開通對應的谷歌服務埠,經過一番查詢,記錄如下: I've fin

Android系統使用谷歌官方GCM指南

本文旨在為所有Android系統手機普通使用者提供使用谷歌GCM推送的教程,注意這不是用於開發者的。雖名為指南,但多少是探索性的,因為一些細節筆者尚未搞清楚,希望各位指正。由於大部分國內應用沒有使用GCM推送服務,那麼如果你手機裡的應用幾乎沒有使用GCM服務的應用,那麼即使打通GCM也是沒有意義的。本文的適用

記錄一Android信鴿,跳到指定Activity

使用信鴿推送,跳到指定的Activity。出現了兩次請求伺服器資料。 原因:對於onNewIntent的呼叫不清晰。 背景: 1、Activity模式:SingleTop; 場景一: 假如指定的Activity不存在的話,信鴿推送跳到指定的Activity的生命週期為:

android studio 加入極光 error資訊出現獲取sdk版本失敗的問題

專案加入極光推送,但是在debug模式下面一直看到獲取sdk版本失敗的情況,看了下文件 照極光推送 官方整合文件 出現 出現獲取sdk版本失敗的問題 JPush .so file do not ma

android 極光 聲音與振動 的關閉和開啟

fff getc 用法 koa pub tar brush asi drawable   前言:最近剛好在寫一些推送方面的東西,又是新手,不斷在網上找資料,很少,不過還是找到了一些,反正百度我是再也不想百度了,谷歌一下子就能找到想要的。   廢話不多說。  

Android實現方式解決方案

都是 device andro broker dev 常見 剛才 設置 互聯網  本文介紹在Android中實現推送方式的基礎知識及相關解決方案。推送功能在手機開發中應用的場景是越來起來了,不說別的,就我們手機上的新聞客戶端就時不j時的推送過來新的消息,很方便的閱讀最新的新

JavaWeb基礎 session 只有在第一獲取的時候才會創建

mage logs () port fire tco jsession protected x64 禮悟:   好好學習合思考,尊師重道存感恩。葉見尋根三返一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉強身心,誠勸且行且珍惜。

Android push消息到達成功率優化

發送消息 data- 得到 推斷 view 使用 數據 數據庫 blog Android push推送消息到達成功率優化 問題:server向client發送消息。

基於Netty實現的Android 訊息(即時通訊)的解決方案

根據Netty框架實現訊息推送(即時聊天)功能. Netty框架,TCP長連線,心跳,阻塞訊息佇列,執行緒池處理訊息傳送, 基於Google ProtoBuf自定義的訊息協議, TCP粘包/拆包.... 客戶端通過TCP連線到伺服器,並建立TCP長連線;當伺服器端收到新訊息後通過TCP連線推送給

Android 小米(MiPush)的化簡深入理解

      小米推送(MiPush)是小米公司向開發者提供的訊息推送服務,總的流程如官方文件所示:      由圖可知,推送是雙向的:      1.推送是可以由app的後臺端發起,應用伺服器的後

GCM 服務端(nodejs)

昨天接入蘋果APNs推送,今天需要支援GCM端推送,推送伺服器都需要在牆外,否者無法連線到GCM伺服器,而接受推送伺服器的手機app需要有谷歌服務框架,最好待推送手機也在牆外。 GCM架構圖: 同樣萬

Android 信鴿整合

本文是基於3.+的版本,在整合4.+的版本中,整合mid包時遇到一個問題 Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be s

android pn是出現reomte-server-error(502)

07-23 17:18:33.249: E/Androidpn_XmppManager(17600): XMPP connection failed 07-23 17:18:33.249: E/Androidpn_XmppManager(17600): XMPPError connecti

對於svn的總結,包括Android studio配置svn, svn第一上傳專案,及忽略專案檔案

1.Android studio在使用svn的時候需要進行一些簡單的配置,在studio  中  file ->setting ->version contrl->SubVersion   ->配置(安裝的路徑 複製進來(xxxxx\svn.exe)

android librtmp h264流 aac流 基本過程總結四 流x264

{ RTMPPacket * packet; unsigned char * body; int i; int ret = 0; if (m_pRtmp == NULL) return -1; packet = (RTMPPacket *) malloc(RTMP_HEAD_SIZE +

android 極光 自定義聲音

可以定義樣式,那麼可以禁用極光的聲音,收到通知就播放一個聲音就好:禁用: // 極光 JPushInterface.setDebugMode(IS_DEBUG); JPushInterface.init(this); BasicPushNotificationB

第一獲取github上go語言編寫的一個專案遇到問題的處理

我安裝的是最新的go語音版本1.9,下載的是go1.9.windows-amd64.msi 安裝檔案。檔案需要到https://golang.org/ 去下載。由於眾所周知的原因,需要翻牆,否則網站打不開。 安裝很順利。安裝完後開啟一個cmd視窗,輸入: go versio