目录

HuaweiPush Plugin

Huawei Push the plug is Cobub Razor official platform based Huawei alliance to push the development of a plug-in. It integrates features a push function Tag Huawei and Cobub Razor Alliance platform provides more convenient, fast and accurate a push. Huawei Union open platform for messaging applications to help companies push through low-cost Internet access, provide a sound, efficient and stable service system solves the Internet cloud to the phone side of the message interoperability problems.

Integration steps:

Huawei push the plug before integration, ensure the establishment of a database related tables, can go tohere sql file Download related to import into your database, create a related table (note changes in the prefix table sql razor_, in order to maintain your own database table prefix and consistent).

1.Ensure Cobub Razor and Cobub authorized users Center has successfully bound. If not binding, see here. 2.Activate Huawei Cobub Razor in push applications To use the plug-in Huawei push push, the system needs to be allocated for each of the corresponding authorization Key App (currently only supports Android platform). 3. Huawei push SDK integration ** Huawei Huawei Push Coalition downloaded SDK for the. Rar file, after local decompression, go to “micro-kernel SDK \ Doc” directory, “Huawei PushSDK integration instructions. Pdf” Reference Doc directory integration Huawei push SDK documentation

Integration steps:

3.1 Integration jar package:

Adding acquired cobub razor’s ums.jar Huawei to push the project libs directory. Right on the project and select Build Path→ Configure build path … → left select Java Build Path→; choose Libraries Select Card →; Add JARs .. →; choose the items currently Libs directory, select the jar package, and then click OK.

3.2.Modify download Huawei push SDK project package name and package name to create an application consistent:

3.3 Configuration AndroidManifest.xml file.

* Add authorization

    uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
    uses-permission android:name="com.android.mylauncher.permission.INSTALL_SHORTCUT"

* Add Service Statement

meta-data 
             android:name="UMS_APPKEY" 
             android:value="APPKEY"
meta-data

Note: PACKAGENAME replace the package name for the project. APPKEY which is created by Cobub razor to get to the application of

3.4 Add SendMapping.java mapping file: SendMapping.java document on ‘.. \ src \ project name’ directory

package  PACKAGENAME;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import com.wbtech.ums.UmsAgent;
import com.wbtech.ums.common.CommonUtil;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

public class SendMapping extends BroadcastReceiver {
    public static String NAME = "BroadcastReceiver2SendMapping";
    boolean isGetCobubBroadcoast = false;
    boolean isGetHuaWeiBroadcoast = false;
    String serviceURL = "http://push.cobub.com/index.php?/api/huawei/postmapping";

    public SendMapping() {
    }
    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Log.d(NAME,"SendMapping onReceive");
//注册 receiver
//        SendMapping receiver = new SendMapping();
//        IntentFilter filter = new IntentFilter();
//        filter.addAction("cobub.razor.message");
//        filter.addAction("com.huawei.android.push.intent.REGISTRATION");
//        registerReceiver(receiver, filter);
        String action = intent.getAction();
        SharedPreferences sp= context.getSharedPreferences("cobub_huawei_sharepreference", 0);
        if(action.equals("cobub.razor.message")){
            String deviceid = intent.getStringExtra("deviceid");
            Log.d("postdata ", "get deviceid   : "+deviceid);
            sp.edit().putString("deviceid", deviceid).commit();
            isGetCobubBroadcoast = true;
        }
        if(action.equals("com.huawei.android.push.intent.REGISTRATION")){
            String deviceToken;
            try {
                deviceToken = new String(intent.getByteArrayExtra("device_token"), "UTF-8");
                sp.edit().putString("deviceToken", deviceToken).commit();
                Log.d("postdata ", "get deviceToken   : "+deviceToken);
                isGetHuaWeiBroadcoast = true;
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
        if(isGetCobubBroadcoast&& isGetHuaWeiBroadcoast){
            final JSONObject obj = new JSONObject();
            String deviceid = sp.getString("deviceid", "");
            String deviceToken = sp.getString("deviceToken", "");
            try {
                obj.put("deviceToken", deviceToken);
                obj.put("deviceid", deviceid);
                obj.put("app_key", CommonUtil.getAppKey(context));
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            Log.d("postdata ", "post deviceid and deviceToken");
            new Thread(new Runnable() {

				@Override
				public void run() {
					// TODO Auto-generated method stub
					 post(serviceURL,obj.toString());
					 isGetCobubBroadcoast = false;
					 isGetHuaWeiBroadcoast = false;
				}
			}).start();
        }
    }
    public static int post(String url, String data) {
        String returnContent = "";
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        Log.d("postdata", "SMpost"+url+"  "+data);
        try {
            StringEntity se = new StringEntity("content="+data, HTTP.UTF_8);
            se.setContentType("application/x-www-form-urlencoded");
            httppost.setEntity(se);
            HttpResponse response = httpclient.execute(httppost);
            int status = response.getStatusLine().getStatusCode();
            Log.d("postdata ", "status==="+status);
            String returnXML = EntityUtils.toString(response.getEntity());
            returnContent = URLDecoder.decode(returnXML);
            switch (status) {
            case 200:
            {
            	Log.d("postdata ", "status===200");
                JSONObject obj = new JSONObject(returnContent);
                return obj.getInt("flag");
            } 
              default:
            	  Log.d("postdata ", "status="+status);
                break;
            }
        } catch (Exception e) { 
        	 e.printStackTrace();
            JSONObject jsonObject = new JSONObject();
                try {
                    jsonObject.put("err", e.toString());
                    returnContent = jsonObject.toString();
                } catch (JSONException e1) {
                    e1.printStackTrace();
                }
        }
        Log.d("postdata ", "post deviceid error deviceToken");
        return 0;
    } 
}

3.5 Initialize SDK

Import UmsAgent in your application’s main Activity Lane;

import com.wbtech.ums.UmsAgent;

Then start the initialization phase in your application initialization SDK:

UmsAgent.setBaseURL("http://192.168.1.104:80/dev07/razor/web/index.php?");
		 UmsAgent.update(this);
		 UmsAgent.onError(this);
		 UmsAgent.setDefaultReportPolicy(this, 1);
		 UmsAgent.bindUserIdentifier(this, "xd..");
		 UmsAgent.postClientData(this);

		//注册 receiver
	      SendMapping receiver = new SendMapping();
	      IntentFilter filter = new IntentFilter();
	      filter.addAction("cobub.razor.message");
	      filter.addAction("com.huawei.android.push.intent.REGISTRATION");
	      registerReceiver(receiver, filter);

This method must be called within the Activity or Service category. Under normal circumstances, you can call the Activity’s onCreate () method To ensure that unforeseen circumstances cause initialization fails, the application is recommended once every start calling the initialization interface.。

4 Use Huawei’s push service

Huawei’s push into Cobub Razor Plug-home, plug-in application reads a list of all current system Android. Has a push operation after each application, the user can select the message type according to their needs. Push into the detailed interface, select the label as required or the entire APP push, and push relevant content to fill

5 View a pushing and send reports

Push into the plug-in reporting module, the user can view the user push reports. Note: The system supports only 30 days to push the report query service. The user can select the time period through the upper right corner. Push the report shows all active push APP report, click the report to push a single APP view a single application.

6 Account and balance sheet

Huawei push the plug on a monthly basis, based on the total number of users the system last month, every month all users APP online users to be settled. Huawei push the plug is charged according to the number of online settlement of the month, regardless of the number of push. In order to ensure the normal push service, please recharge module pre individuals Center account recharge.

7 FAQ

How to Get Package Name? Application identification (Package Name), often beginning com Method:

  1. Open the application on your phone
  2. Click Settings →; Applications →; management application →; running, find your program in the list
  3. In the application process can be seen in the application of identity (Package Name)