个推,手机推送api的使用

个推的作用:可以为手机端的app使用者推送消息,而不是通过手机上的app对用户发送消息。所以用户是被动的接收信息。当然不只是只有对用户弹出窗口的这种方式,也可以把信息推送给app,让app决定对用户实行怎么样的操作,例如在app的栏目中显示出有新信息的图标,以便提高用户体验。

个推的官网http://www.igetui.com/

该api支持android和iso的推送。

下载个推的sdk,里面有各种不同文档,其中有android的apk的安装文件,可以进行推送的测试。

/**
 * 推送的基类
 * @author hj
 */
public abstract class PushBase {
	
	protected static final String APPID = "b03c5cfef65ed30108f0a3fd82c3f6b4";
	protected static final String APPKEY = "110000";
	protected static final String MASTERSECRET = "a02a76119b20d4e31620d7597a3b4f35";
	protected static final String CLIENTID = "f8b14fc288a21bc3d675190e9a4db0a4";
	protected static final String API = "http://sdk.open.api.igexin.com/apiex.htm"; 	//OpenService接口地址
	
	protected static String getDate(){
		Date date = new Date();
		return date.toLocaleString();
	}
}


对多个app进行推送:

import java.util.ArrayList;
import java.util.List;
import com.gexin.rp.sdk.base.IIGtPush;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.LinkTemplate;

public class PushMessageToAppTest extends PushBase{

	public static void main(String[] args) {

		// 推送主类
		IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);

		try {

			AppMessage message = new AppMessage();

			//通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以LinkTemplate为例
			//在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页
			LinkTemplate template = new LinkTemplate();
			
			template.setAppId(APPID);								//应用APPID
			template.setAppkey(APPKEY);							//应用APPKEY
			
			//通知属性设置:如通知的标题,内容
			template.setTitle("填写通知标题");						// 通知标题
			template.setText("填写通知内容");					// 通知内容
			template.setLogo("hello.png");
//			template.setIsRing(true);					// 收到通知是否响铃,可选,默认响铃
//			template.setIsVibrate(true);					// 收到通知是否震动,可选,默认振动
//			template.setIsClearable(true);				// 通知是否可清除,可选,默认可清除
			template.setUrl("http://baidu.com");		//点击通知后打开的网页地址,你可以设定你希望跳转的网页地址如http://www.igetui.com

			message.setData(template);
//			message.setOffline(true);		//用户当前不在线时,是否离线存储,可选,默认不存储
//			message.setOfflineExpireTime(72 * 3600 * 1000);		//离线有效时间,单位为毫秒,可选

			List appIdList = new ArrayList();
			appIdList.add(APPID);

			List phoneTypeList = new ArrayList();//通知接收者的手机操作系统类型,可选
			phoneTypeList.add("ANDROID");

			List provinceList = new ArrayList();		//通知接收者所在省份,可选
			provinceList.add("浙江");
			provinceList.add("上海");
			provinceList.add("北京");
			
			List tagList = new ArrayList();			//通知接收者的标签用户,可选
			tagList.add("填写tags名称");

			message.setAppIdList(appIdList);				
			message.setPhoneTypeList(phoneTypeList);
			message.setProvinceList(null);
			message.setTagList(null);

			IPushResult ret = push.pushMessageToApp(message);	

			System.out.println(ret.getResponse().toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


对单个app的多个用户进行推送:

import java.util.ArrayList;
import java.util.List;
import com.gexin.rp.sdk.base.IIGtPush;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.ListMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.NotificationTemplate;

//可接收多个用户,最多为50个
public class PushMessageToListTest extends PushBase{

	public static void main(String[] args) {
		//显示每个用户的用户状态,false:不显示,true:显示
		System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");

		// 推送主类
		IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);

		try {
			ListMessage message = new ListMessage();

			//通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以NotificationTemplate为例
			//在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用
			NotificationTemplate template = new NotificationTemplate();

			template.setAppId(APPID);							//应用APPID
			template.setAppkey(APPKEY);							//应用APPKEY
			
			//通知属性设置:如通知的标题,内容
			template.setTitle("此处填写通知标题"+getDate());					// 通知标题
			template.setText("此处填写通知内容"+getDate());					// 通知内容
			template.setLogo("push.png");				// 通知图标,需要客户端开发时嵌入
			template.setIsRing(false);					// 收到通知是否响铃,可选,默认响铃
//			template.setIsVibrate(true);					// 收到通知是否震动,可选,默认振动
			template.setIsClearable(true);				// 通知是否可清除,可选,默认可清除
			
			template.setTransmissionType(2);				// 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
			template.setTransmissionContent("你需要透传的内容"+getDate());	// 透传内容(点击通知后SDK将透传内容传给你的客户端,需要客户端做相应开发)

			message.setData(template);
//			message.setOffline(true);		//用户当前不在线时,是否离线存储,可选,默认不存储
//			message.setOfflineExpireTime(72 * 3600 * 1000);		//离线有效时间,单位为毫秒,可选

			// 接收者
			List targets = new ArrayList();
			Target target1 = new Target();
//			Target target2 = new Target();						//如果需要可设置多个接收者
			target1.setAppId(APPID);							//接收者安装的应用的APPID
			target1.setClientId(CLIENTID);						//接收者的ClientID

			//如需,可设置多个接收者
//			target2.setAppId(APPID2);							//接收者2安装应用的APPID
//			target2.setClientId(CLIENTID2);						//接收者2的ClientID

			targets.add(target1);
//			targets.add(target2);

			//推送前通过该接口申请“ContentID”
			String contentId = push.getContentId(message);	
			IPushResult ret = push.pushMessageToList(contentId, targets);
 
			System.out.println(ret.getResponse().toString());
		} catch (Exception e) {
				e.printStackTrace();
		}
	}
}


对单个app的单个用户进行推送:

import com.gexin.rp.sdk.base.IIGtPush;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.SingleMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.TransmissionTemplate;
//对单个用户推送
public class PushMessageToSingleTest extends PushBase{
	

	public static void main(String[] args) {
		// 推送主类
		IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);

		try {		
			//单推消息类型 
			SingleMessage message = new SingleMessage();

			//通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以TransmissionTemplate为例
			//数据经SDK传给您的客户端,由您写代码决定如何处理展现给用户
			TransmissionTemplate template = new TransmissionTemplate();//透传方式
			template.setAppId(APPID);
			template.setAppkey(APPKEY);
			template.setTransmissionContent("您需要透传的内容:"+getDate());
			
			//收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
			template.setTransmissionType(1);					

			message.setData(template);
//			message.setOffline(true);					//用户当前不在线时,是否离线存储,可选
//			message.setOfflineExpireTime(72 * 3600 * 1000);	//离线有效时间,单位为毫秒,可选
			
			Target target1 = new Target();
			target1.setAppId(APPID);
			target1.setClientId(CLIENTID);

			//单推
			IPushResult ret = push.pushMessageToSingle(message, target1);
						
			System.out.println(ret.getResponse().toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
import com.gexin.rp.sdk.base.IIGtPush;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.SingleMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.NotyPopLoadTemplate;

public class PushMessageToSingleTest1 extends PushBase{

	public static void main(String[] args) {
		// 推送主类
		IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);

		try {

			// 单推消息类型
			SingleMessage message = new SingleMessage();

			//通知栏弹框下载模版
			//在通知栏显示一条含图标、标题等的通知,用户点击后弹出框,用户可以选择直接下载应用或者取消下载应用。
			NotyPopLoadTemplate template = new NotyPopLoadTemplate();
			// 是否激活
			template.setActived(true);
			// 安卓标识
			template.setAndroidMark("android_mark");
			template.setAppId(APPID);
			template.setAppkey(APPKEY);
			// 是否自动安装
			template.setAutoInstall(true);
			// 是否响铃
			template.setBelled(true);
			// 通知是否可清除
			template.setCleared(true);
			// 苹果标识
			template.setIphoneMark("iphone_mark");
			// 下载图标
			template.setLoadIcon("");
			// 下载标题
			template.setLoadTitle("LoadTitle");
			// 下载地址
			template.setLoadUrl("http://dizhensubao.igexin.com/dl/com.ceic.apk");
			// 通知栏内容
			template.setNotyContent("NotyContent");
			// 通知栏图标
			template.setNotyIcon("");
			// 通知栏标题
			template.setNotyTitle("NotyTitle");
			// 左侧按钮名称
			template.setPopButton1("下载");
			// 右侧按钮名称
			template.setPopButton2("取消");
			// 弹框内容
			template.setPopContent("popContent");
			// 弹框图标
			template.setPopImage("");
			// 弹框标题
			template.setPopTitle("PopTitle");
			// 塞班标识
			template.setSymbianMark("symbian_mark");
			// 是否震动
			template.setVibrationed(true);
			message.setData(template);
			message.setOffline(true);
			message.setOfflineExpireTime(72 * 3600 * 1000);
			// 设置优先级
			message.setPriority(1);

			Target target1 = new Target();
			target1.setAppId(APPID);
			target1.setClientId(CLIENTID);
			// 单推
			IPushResult ret = push.pushMessageToSingle(message, target1);
			System.out.println(ret.getResponse().toString());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


工程下载地址:http://download.csdn.net/detail/wxwzy738/7263297


你可能感兴趣的:(android)