出处:http://blog.csdn.net/jeethongfei/article/details/6767826
1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能
2、AlarmManager的常用方法有三个:
(1)set(int type,long startTime,PendingIntent pi);
该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作。
(2)setRepeating(int type,long startTime,long intervalTime,PendingIntent pi);
该方法用于设置重复闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟首次执行时间,第三个参数表示闹钟两次执行的间隔时间,第三个参数表示闹钟响应动作。
(3)setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pi);
该方法也用于设置重复闹钟,与第二个方法相似,不过其两个闹钟执行的间隔时间不是固定的而已。
3、三个方法各个参数详悉:
(1)int type:闹钟的类型,常用的有5个值:AlarmManager.ELAPSED_REALTIME、AlarmManager.ELAPSED_REALTIME_WAKEUP、AlarmManager.RTC、AlarmManager.RTC_WAKEUP、AlarmManager.POWER_OFF_WAKEUP。
AlarmManager.ELAPSED_REALTIME表示闹钟在手机睡眠状态下不可用,该状态下闹钟使用相对时间(相对于系统启动开始),状态值为3;
AlarmManager.ELAPSED_REALTIME_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用相对时间,状态值为2;
AlarmManager.RTC表示闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间,即当前系统时间,状态值为1;
AlarmManager.RTC_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间,状态值为0;
AlarmManager.POWER_OFF_WAKEUP表示闹钟在手机关机状态下也能正常进行提示功能,所以是5个状态中用的最多的状态之一,该状态下闹钟也是用绝对时间,状态值为4;不过本状态好像受SDK版本影响,某些版本并不支持;
(2)long startTime:闹钟的第一次执行时间,以毫秒为单位,可以自定义时间,不过一般使用当前时间。需要注意的是,本属性与第一个属性(type)密切相关,如果第一个参数对应的闹钟使用的是相对时间(ELAPSED_REALTIME和ELAPSED_REALTIME_WAKEUP),那么本属性就得使用相对时间(相对于系统启动时间来说),比如当前时间就表示为:SystemClock.elapsedRealtime();如果第一个参数对应的闹钟使用的是绝对时间(RTC、RTC_WAKEUP、POWER_OFF_WAKEUP),那么本属性就得使用绝对时间,比如当前时间就表示为:System.currentTimeMillis()。
(3)long intervalTime:对于后两个方法来说,存在本属性,表示两次闹钟执行的间隔时间,也是以毫秒为单位。
(4)PendingIntent pi:是闹钟的执行动作,比如发送一个广播、给出提示等等。PendingIntent是Intent的封装类。需要注意的是,如果是通过启动服务来实现闹钟提示的话,PendingIntent对象的获取就应该采用Pending.getService(Context c,int i,Intent intent,int j)方法;如果是通过广播来实现闹钟提示的话,PendingIntent对象的获取就应该采用PendingIntent.getBroadcast(Context c,int i,Intent intent,int j)方法;如果是采用Activity的方式来实现闹钟提示的话,PendingIntent对象的获取就应该采用PendingIntent.getActivity(Context c,int i,Intent intent,int j)方法。如果这三种方法错用了的话,虽然不会报错,但是看不到闹钟提示效果。
4、 AlarmManager使用示例:利用用户自定义广播实现闹钟功能,从当前时间开始,每隔10分钟提示一次
(1)实现原理:在SendActivity.java中定义一个AlarmManager对象,指定该对象从当前时间开始,每隔10分钟向名为“MYALARMRECEIVER”的广播接收器发出一条广播,附加消息内容为“你该打酱油了”;创建一个名为MyReceiver的广播接收器,在其onReceive方法中获取Intent对象传过来的值(“你该打酱油了”)并用一个Toast组件显示出来;在AndroidManifest.xml文件中注册SendActivity类和广播接收器类MyReceiver,设置MyReceiver的action的值为“MYALARMRECEIVER”
(2)代码实现:
第一步:创建广播接收类MyReceiver.java,在其onReceive方法中获取Intent的附加信息msg,并用Toast组件显示
第二步:在AndroidManifest.xml中注册广播接收类MyReceiver.java,设置其action值为“MYALARMRECEIVER”
第三步:创建SendActivity.java,用于设置闹钟,定时发出广播
第四步:在AndroidManifest中为SendActivity.java注册
1、【新浪微博错误代码大全】
304 Not Modified: 没有数据返回.
400 Bad Request: 请求数据不合法,或者超过请求频率限制. 详细的错误代码如下:
o 40028:内部接口错误(如果有详细的错误信息,会给出更为详细的错误提示)
o 40033:source_user或者target_user用户不存在
o 40031:调用的微博不存在
o 40036:调用的微博不是当前用户发布的微博
o 40034:不能转发自己的微博
o 40038:不合法的微博
o 40037:不合法的评论
o 40015:该条评论不是当前登录用户发布的评论
o 40017:不能给不是你粉丝的人发私信
o 40019:不合法的私信
o 40021:不是属于你的私信
o 40022:source参数(appkey)缺失
o 40007:格式不支持,仅仅支持XML或JSON格式
o 40009:图片错误,请确保使用multipart上传了图片
o 40011:私信发布超过上限
o 40012:内容为空
o 40016:微博id为空
o 40018:ids参数为空
o 40020:评论ID为空
o 40023:用户不存在
o 40024:ids过多,请参考API文档
o 40025:不能发布相同的微博
o 40026:请传递正确的目标用户uid或者screen name
o 40045:不支持的图片类型,支持的图片类型有JPG,GIF,PNG
o 40008:图片大小错误,上传的图片大小上限为5M
o 40001:参数错误,请参考API文档
o 40002:不是对象所属者,没有操作权限
o 40010:私信不存在
o 40013:微博太长,请确认不超过140个字符
o 40039:地理信息输入错误
o 40040:IP限制,不能请求该资源
o 40041:uid参数为空
o 40042:token参数为空
o 40043:domain参数错误
o 40044:appkey参数缺失
o 40029:verifier错误
o 40027:标签参数为空
o 40032:列表名太长,请确保输入的文本不超过10个字符
o 40030:列表描述太长,请确保输入的文本不超过70个字符
o 40035:列表不存在
o 40053:权限不足,只有创建者有相关权限
o 40054:参数错误,请参考API文档
o 40059: 插入失败,记录已存在
o 40060:数据库错误,请联系系统管理员
o 40061:列表名冲突
o 40062:id列表太长了
o 40063:urls是空的
o 40064:urls太多了
o 40065:ip是空值
o 40066:url是空值
o 40067:trend_name是空值
o 40068:trend_id是空值
o 40069:userid是空值
o 40070:第三方应用访问api接口权限受限制
o 40071:关系错误,user_id必须是你关注的用户
o 40072:授权关系已经被删除
o 40073:目前不支持私有分组
o 40074:创建list失败
o 40075:需要系统管理员的权限
o 40076:含有非法词
o 40084:提醒失败,需要权限
o 40082:无效分类!
o 40083:无效状态码
o 40084:目前只支持私有分组
401 Not Authorized: 没有进行身份验证.
o 40101 version_rejected Oauth版本号错误
o 40102 parameter_absent Oauth缺少必要的参数
o 40103 parameter_rejected Oauth参数被拒绝
o 40104 timestamp_refused Oauth时间戳不正确
o 40105 nonce_used Oauth nonce参数已经被使用
o 40106 signature_method_rejected Oauth签名算法不支持
o 40107 signature_invalid Oauth签名值不合法
o 40108 consumer_key_unknown! Oauth consumer_key不存在
o 40109 consumer_key_refused! Oauth consumer_key不合法
o 40110 token_used! Oauth Token已经被使用
o 40111 Oauth Error: token_expired! Oauth Token已经过期
o 40112 token_revoked! Oauth Token不合法
o 40113 token_rejected! Oauth Token不合法
o 40114 verifier_fail! Oauth Pin码认证失败
402 Not Start mblog: 没有开通微博
403 Forbidden: 没有权限访问对应的资源.
o 40301 too many lists, see doc for more info 已拥有列表上限
o 40302 auth faild 认证失败
o 40303 already followed 已经关注此用户
o 40304 Social graph updates out of rate limit 发布微博超过上限
o 40305 update comment out of rate 发布评论超过上限
o 40306 Username and pwd auth out of rate limit 用户名密码认证超过请求限制
o 40307 HTTP METHOD is not suported for this request 请求的HTTP METHOD不支持
o 40308 Update weibo out of rate limit 发布微博超过上限
o 40309 password error 密码不正确
o 40314 permission denied! Need a high level appkey 该资源需要appkey拥有更高级的授权
404 Not Found: 请求的资源不存在.
500 Internal Server Error: 服务器内部错误.
502 Bad Gateway: 微博接口API关闭或正在升级 .
503 Service Unavailable: 服务端资源不可用.
2、【人人网分享错误代码大全】
<1> 一个未知的错误发生
<2> 服务临时不可用
<3> 未知的方法
<4> 应用已达到设定的请求上限
<5> 请求来自未经授权的IP地址
<6> 当前用户session key过期了(已过期)
<7> rest api调用次数超过了限制
<100> 无效未知参数
<101> 无效的API_KEY
<102> 无效的SESSION_KEY
<103> 必须是POST提交
<104> 无效的签名
<200> USER PERMISSIONS ERRORS
<210> API_EC_PERMISSION_USER
<220> API_EC_PERMISSION_ALBUM
<221> <API_EC_PERMISSION_PHOTO>
<450> 当前用户的sessionKey过期
<451> Session key specified cannot be used to call this method
<452> Session key 无效. 可能传入的sessionKey格式出现错误
<453> 调用此方法时,session key 是一个必须的参数
<2000> 没有得到auth_token
<2001> token对象中没有得到userId
<2002> 用户没有登录校内网
<10000> 登录失败
<10201> API_EC_REST_LACKO_API_KEY
<10202> API_EC_REST_LACKOF_SESSION_KEY
<10203> API_EC_REST_LACKOF_CALL_ID
<10600> 此接口的调用规则是: 48小时之内,一个用户最多可以调用10次
<10601> Feed标题模板是无效的,标题模板中必须含有 \"{actor}\" 变量,且只含有一个
<10602> 文本空,显示内容应该在30个字符之内
<10603> if {target} is used, then target_ids becomes a required parameter
<10604> title_data 参数不是一个有效的JSON 格式数组
<10605> Feed的标题模板缺少必须的参数,或者title_data JSON数组定义的参数不完全。
<10606> 只能包含<a>或者<xn:name>标签。
<10607> 内容部分是可选的,内容部分的最终显示的字符数应该控制在100个以内
<10608> Feed story photos could not be retrieved, or bad image links were provided
<10609> title_data 只能包含<a>或者<xn:name>标签。
<10610> body_data 只能包含<a>或者<xn:name>标签。
<10611> Applications are limited to calling this function once every 12 hours for each user
<10612> the membercache Error
<10613> The word \"message\" is disallowed in a feed story
<10614> the title is required
<10615> Feed的标题模板缺少必须的参数,或者title_data JSON数组定义的参数不完全。
<10616> Feed标题模板中定义的变量和title_data JSON数组中的定义不匹配
<10617> 没有注册模板
<10618> url错误
<10619> body_data 参数不是一个有效的JSON 格式数组
<10620> body_data 只能包含<a>或者<xn:name>标签。
<10700> 传入文本信息错误
<10701> 传入接口者id错误
<10702> 发送者已超过当天发送配额
<10703> AppToUser已超过发送配额
<10704> 通知发送过快
<10800> 传递订单号已失效,无法获取到token
<10801> 无效的订单号 (小于零)
<10802> 消费金额无效:不支持大笔消费金额>100或者小于零
<10803> 校内网支付平台应用资料审核未通过,没有使用平台的资格
<10804> 该订单不存在
<20201> 需要用户授予status_update权限
<20204> 需要用户授予read_stream权限
-
博客分类:
- MTK
1.1. 如何通信
1.2. 通信数据
1.3. 如何从MMI Queue中侦听消息
1.4. 如何在MMI 队列中写入消息
当NVRAM接收到其他消息时:
1.5. 如何从L4C接听消息
注册一个消息回调函数
SetProtocolEventHandler(FuncCB, msg_id);
1.6. 如何向L4C 发送消息
2. 构建一个本地参数指针
3. 将请求数据填充进本地参数指针中。
4. 给结构体ilm_struct赋值。
5. 向L4C发送消息。
消息信息 = 头信息 + 数据信息
2.7. 本地参数:(local parameter)
Header info + Data info:
例如:
2.8. 如何创建本地参数:(动态分配内存)
2.9. 何时释放本地参数
当L4接收到消息并处理完成后,会自动释放参数。