1 建立新工程php
-----獲取api key 和secret keyhtml
2,推送設置java
3,新建安卓項目,並把應用包名 和 推送中設置的包名設置一致android
4,下載百度雲客戶端sdkjson
5,解壓,並添加libs文件夾文件到相應路徑,並添加pushservice-4.2.0.63.jar到構建路徑api
6,添加 Demo\src\com\baidu\push\example 路徑下的Utils.java到 包下服務器
7,新建MyPushMessageReceiver類並繼承FrontiaPushMessageReceiverapp
8,根據提示初始化全部方法,並複寫onNotificationClicked方法ide
/** * 接收通知點擊的函數。注:推送通知被用戶點擊前,應用沒法經過接口獲取通知的內容。 * * @param context * 上下文 * @param title * 推送的通知的標題 * @param description * 推送的通知的描述 * @param customContentString * 自定義內容,爲空或者json字符串 */ @Override public void onNotificationClicked(Context context, String title, String description, String customContentString) { String notifyString = "通知點擊 title=\"" + title + "\" description=\"" + description + "\" customContent=" + customContentString; Log.d(TAG, notifyString); // 自定義內容獲取方式,mykey和myvalue對應通知推送時自定義內容中設置的鍵和值 if (!TextUtils.isEmpty(customContentString)) { JSONObject customJson = null; try { customJson = new JSONObject(customContentString); String myvalue = null; if (customJson.isNull("mykey")) { myvalue = customJson.getString("mykey"); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // Demo更新界面展現代碼,應用請在這裏加入本身的處理邏輯 updateContent(context, notifyString); } private void updateContent(Context context, String content) { MainActivity.url="http://www.sina.com"; MainActivity.num=1; Intent intent = new Intent(); intent.setClass(context.getApplicationContext(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.getApplicationContext().startActivity(intent); }
9 修改AndroidManifest.xml文件函數
----------------------修改application節點 android:name="com.baidu.frontia.FrontiaApplication"
----------------------註冊MyPushMessageReceiver類
xml文件以下
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="小洋" android:name="com.baidu.frontia.FrontiaApplication"> <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTop" android:name=".SplashActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustResize"> <intent-filter android:label="@string/launcher_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:configChanges="keyboardHidden" android:name=".GuideActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> <activity android:name=".MainActivity" /> <activity android:configChanges="orientation|keyboardHidden" android:label="MediaViewActivity" android:name="com.baidu.android.pushservice.richmedia.MediaViewActivity" /> <activity android:configChanges="orientation|keyboardHidden" android:label="MediaListActivity" android:launchMode="singleTask" android:name="com.baidu.android.pushservice.richmedia.MediaListActivity" /> <receiver android:name="com.hn.esgj.MyPushMessageReceiver"> - <intent-filter> - <action android:name="com.baidu.android.pushservice.action.MESSAGE" /> <action android:name="com.baidu.android.pushservice.action.RECEIVE" /> <action android:name="com.baidu.android.pushservice.action.notification.CLICK" /> </intent-filter> </receiver> <receiver android:name="com.baidu.android.pushservice.PushServiceReceiver" android:process=":bdservice_v1"> - <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="com.baidu.android.pushservice.action.notification.SHOW" /> <action android:name="com.baidu.android.pushservice.action.media.CLICK" /> </intent-filter> </receiver> <receiver android:name="com.baidu.android.pushservice.RegistrationReceiver" android:process=":bdservice_v1"> - <intent-filter> <action android:name="com.baidu.android.pushservice.action.METHOD" /> <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_REMOVED" /> <data android:scheme="package" /> </intent-filter> </receiver> <service android:exported="true" android:name="com.baidu.android.pushservice.PushService" android:process=":bdservice_v1"> - <intent-filter> <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" /> </intent-filter> </service> </application>
10 在主active的onCreate方法中 開啓
public void onCreate(Bundle savedInstanceState) { try{ PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY, "KH2j92etnCvrO0WyDLUQob4z") ; }catch (Exception e){ } super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); Toast.makeText(getApplicationContext(), url, Toast.LENGTH_SHORT).show(); super.setBooleanProperty("loadInWebView", true); super.loadUrl(url); this.num=0; this.url="file:///android_asset/www/index.html"; }
11,到百度控制檯推送通知作測試
理論上成功,服務器端請下載相應的sdk