jpushexample三国志13头像导入工具什么工

Jpush使用总结 - linwoain - 推酷
Jpush使用总结 - linwoain
今天对极光推送(Jpush )的使用方法做了个测试,首先在其官方网站上下载Android的jar包和demo,(也可以在注册并且输入包名的情况下下载demo,此时的demo就是一个已经配置好包名和APIKey的demo,可以直接将工程部署到手机上进行测试。)。
极光使用了两种不同的通知方式,一种是推送通知,一种是推送消息。
& & 1.推送通知,此时发送的内容只是一条简单的文本消息。
点击消息后,会跳转到一个Activity(此Activity需要在清单文件中注册过滤器
android:name
&com.example.jpushdemo.TestActivity&
&&&&&&&&&&&&
intent-filter
&&&&&&&&&&&&&&&&
android:name
&jpush.testAction&
&&&&&&&&&&&&&&&&
android:name
&jpush.testCategory&
&&&&&&&&&&&&
intent-filter
)中,可以在此Activity中以获取传递Intent的方式获取到message的对象。并将其显示在Activity中。
&=&(TextView)&findViewById(R.id.
tv_content
&=&(TextView)&findViewById(R.id.
&&&&&&&&Intent&intent&=&getIntent();
&!=&intent)&{
&&&&&&&&&&&&Bundle&bundle&=&getIntent().getExtras();
&&&&&&&&&&&&String&title&=&bundle.getString(JPushInterface.
EXTRA_NOTIFICATION_TITLE
&&&&&&&&&&&&String&content&=&bundle.getString(JPushInterface.
EXTRA_ALERT
&&&&&&&&&&&&
.setText(title);
&&&&&&&&&&&&
tv_content
.setText(content);
一般来说如果不需要太多复杂内容的话,可以直接使用此种方式,将数据封装成一个Json,将其推送,客户端收到后将json解析出来并展现到前台即可。
此种方式有缺陷 ,极光中对推送通知中文本的大小有限制,为72个汉字(或144个其它类型字符)。传输信息有限。
& & 2.推送消息,根据Demo可以看到,自定义消息接收需要客户端接收一个消息广播接收者。
&!--&User&defined.&&For&test&only&&用户自定义的广播接收器--&
&&&&&&&&&&&&
android:name
&com.example.jpushdemo.MyReceiver&
&&&&&&&&&&&&
android:enabled
&&&&&&&&&&&&
intent-filter
&&&&&&&&&&&&&&&&
android:name
&cn.jpush.android.intent.REGISTRATION&
&!--Required&&用户注册SDK的intent--&
&&&&&&&&&&&&&&&&
android:name
&cn.jpush.android.intent.UNREGISTRATION&
&&&&&&&&&&&&&&&&
android:name
&cn.jpush.android.intent.MESSAGE_RECEIVED&
&!--Required&&用户接收SDK消息的intent--&
&&&&&&&&&&&&&&&&
android:name
&cn.jpush.android.intent.NOTIFICATION_RECEIVED&
&!--Required&&用户接收SDK通知栏信息的intent--&
&&&&&&&&&&&&&&&&
android:name
&cn.jpush.android.intent.NOTIFICATION_OPENED&
&!--Required&&用户打开自定义通知栏的intent--&
&&&&&&&&&&&&&&&&
android:name
&cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK&
&!--Optional&用户接受Rich&Push&
Javascript
&回调函数的intent--&
&&&&&&&&&&&&&&&&
android:name
&org.linwoain.test&
&&&&&&&&&&&&
intent-filter
在MyReceiver中有提示
&*&自定义接收器
&*&如果不定义这个&Receiver,则:
&*&1)&默认用户会打开主界面
&*&2)&接收不到自定义消息
&MyReceiver&
&BroadcastReceiver
消息只能在此Receiver中获取,不会显示成通知,或者其他。在
onReceive(Context&context,&Intent&intent)中获取方式为
&(JPushInterface.
ACTION_MESSAGE_RECEIVED
.equals(intent.getAction()))&{
& & & & & &
&Bundle&bundle&=&intent.getExtras();
&&&&&&&&&&&&Log.
&[MyReceiver]&接收到推送下来的自定义消息:&&
&+&bundle.getString(JPushInterface.
EXTRA_MESSAGE
在此处也可获取推送通知中的内容
&(JPushInterface.
ACTION_NOTIFICATION_RECEIVED
.equals(intent.getAction()))&{
&&&&&&&&&&&&Log.
&[MyReceiver]&接收到推送下来的通知&
&&&&&&&&&&&&
&notifactionId&=&bundle.getInt(JPushInterface.
EXTRA_NOTIFICATION_ID
&&&&&&&&&&&&Log.
&[MyReceiver]&接收到推送下来的通知的ID:&&
&+&notifactionId);
&&&&&&&&Log.
,&bundle.getString(JPushInterface.
EXTRA_ALERT
));//此处获取到的文本就是通知的内容
此种方式明显比推送通知的方式好一点的是其发送的信息容量比较大,为
除了在网页中控制台可以推送消息外,也可以在第三方平台上发出推送。
用Java代码的方式。
是源代码公开的。可以直接下载jar包&
此jar包运行依赖于另外两个包
将此三个包加入到新建的java工程中。同时在main函数写入:
//这是在极光网站上申请的密钥
&&&&&&&&String&masterSecret=
//应用的appKey,同样在网站上申请
&&&&&&&&String&appKey=
&e3bef5b4c07eda&
//建立JpushClient类,用来发送消息的对象
&&&&&&&&JPushClient&client=
&JPushClient(masterSecret,&appKey);
//创建自定义消息的参数
&&&&&&&&CustomMessageParams&params&=&
&CustomMessageParams();
//设置接收类型
&&&&&&&&params.setReceiverType(ReceiverTypeEnum.
&&&&&&&&params.setReceiverValue(
//可以发送通知
//&&&&&&&&MessageResult&msgResult&=client.sendNotificationAll(&这里是测试发送的内容!+++1&);
//也可以发送自定义消息
&&&&&&&&MessageResult&msgResult=client.sendCustomMessage(
&这是一条测试的标题&
&这里是内容部分123&
,&params,&
如果无意外的话,即可发送一条消息到手机上。
注意:自定义消息需要在客户端的Receiver中自行定义。不会发出提醒。
日14:28:23
附加内容,自定义通知栏的样式的两种方法:
& & 1、发送自定义消息,自己定义Notification的样式并显示。
& & 2、发送推送消息。需要用到Jpush包提供的API。
当用户需要定制默认的通知栏样式时,则可调用此方法。
极光&Push SDK 提供了 2 个用于定制通知栏样式的构建类:
BasicPushNotificationBuilder
Basic 用于定制 Android Notification 里的 defaults / flags / icon 等基础样式(行为)
CustomPushNotificationBuilder
继承 Basic 进一步让开发者定制 Notification Layout
一般使用BasicPushNotificationBuilder即可。
BasicPushNotificationBuilder&builder&=&
&BasicPushNotificationBuilder(
&&&&&&&&getApplicationContext());
&&&&builder.
notificationDefaults
&=&Notification.
DEFAULT_LIGHTS
//只设置了默认闪光灯
&&&&builder.
notificationFlags
&=&Notification.
FLAG_AUTO_CANCEL
//&设置为自动消失
& & JPushInterface.
setPushNotificationBuilder
(1,&builder);
的通知栏样式为build,并设置样式编号为1,发送推送时需使用此编号,此方法需在
初始化后使用
& & 因为在业务中需要自定义声音又要求使用推送方式。所以设置一个通知栏样式中声音不设置。在收到推送的事件(Receiver)中播放一段声音。使用SoundPool方式,在应用初始化时初始化一个SoundPoll对象和一个int值
&SoundPool&
初始化对象
&SoundPool(3,&&AudioManager.
STREAM_MUSIC
.load(getApplicationContext(),&R.raw.
在Receiver中播放
&(JPushInterface.
ACTION_NOTIFICATION_RECEIVED
.equals(intent
&&&&&&&&.getAction()))&{
.play(MyApp.
,&1.0f,&1.0f,&1,&0,&1.0f);
//利用初始化后的SoundPool对象播放
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致移动开发(23)
极光推送(自己写应用测试时不太灵敏,有时候会接收不到推送(普通用户情况下))
通过极光推送服务,主动、及时地向您的用户发起交互,向其发送聊天消息、
日程提醒、活动预告、进度提示、动态更新等。
精准的目标用户和有价值的推送内容可以提升用户忠诚度,提高留存率与收入。
登陆极光推送,创建应用名称和应用包名。
下载JPushExample
Error:(9, 1) A problem occurred evaluating root project 'JPushExample(483504)'.
& Plugin with id 'com.android.application' not found.
buildscript {
& & repositories {
& & & & jcenter()
& & dependencies {
& & & & classpath 'com.android.tools.build:gradle:1.5.0'
把 classpath 'com.android.tools.build:gradle:1.5.0'前面的注释去掉,或者直接换上自己的classpath.
极光推送官方文档:docs.jpush.io
07-03 11:03:10.864 /? E/JPush: [JPushInterface]&
System.loadLibrary::jpush217java.lang.UnsatisfiedLinkError:&
dalvik.system.PathClassLoader[DexPathList[[zip file &/data/app/com.just.push-
2/base.apk&],nativeLibraryDirectories=[/data/app/com.just.push-2/lib/arm64,&
/vendor/lib64, /system/lib64]]] couldn't find &libjpush217.so&
按照极光推送 官方集成文档 出现 出现获取sdk版本失败的问题 JPush .so file do not match &JPush .jar file in the project
可以编辑 build.gradle 脚本 添加
sourceSets {
& & & & main {
& & & & & & jniLibs.srcDirs = ['libs']
高级功能:
接收推送消息Receiver
使用推送也可以用来实现记录类似微信新消息数量的功能
//在自定义消息中可以发送json类型的数据
所有需要客户端被动接收信息的功能模块,都可以用推送实现。
极光推送设置应用信息的图片:
下载JpushExample
Android Studio中清单文件配置
&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
package=&com.just.push&&
&!--在AndroidManifest中使用 ${applicationId} 引用gradle中定义的包名--&
&!--Required--&
&permission
android:name=&${applicationId}.permission.JPUSH_MESSAGE&
android:protectionLevel=&signature& /&
&!-- Required
一些系统要求的权限,如访问网络等--&
&uses-permission android:name=&${applicationId}.permission.JPUSH_MESSAGE& /&
&uses-permission android:name=&android.permission.RECEIVE_USER_PRESENT& /&
&uses-permission android:name=&android.permission.INTERNET& /&
&uses-permission android:name=&android.permission.WAKE_LOCK& /&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&uses-permission android:name=&android.permission.READ_EXTERNAL_STORAGE& /&
&uses-permission android:name=&android.permission.WRITE_SETTINGS& /&
&uses-permission android:name=&android.permission.VIBRATE& /&
&uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS& /&
&uses-permission android:name=&android.permission.ACCESS_NETWORK_STATE& /&
&uses-permission android:name=&android.permission.ACCESS_WIFI_STATE& /&
&uses-permission android:name=&android.permission.SYSTEM_ALERT_WINDOW&/&
&!-- Optional for location --&
&uses-permission android:name=&android.permission.ACCESS_COARSE_LOCATION& /&
&uses-permission android:name=&android.permission.CHANGE_WIFI_STATE& /&
&uses-permission android:name=&android.permission.ACCESS_FINE_LOCATION& /&
&uses-permission android:name=&android.permission.ACCESS_LOCATION_EXTRA_COMMANDS& /&
&uses-permission android:name=&android.permission.CHANGE_NETWORK_STATE& /&
&application
android:allowBackup=&true&
android:icon=&@mipmap/ic_launcher&
android:name=&.MyApplication&
android:label=&@string/app_name&
android:supportsRtl=&true&
android:theme=&@style/AppTheme&&
&activity android:name=&.MainActivity&&
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&!-- Rich push 核心功能 since 2.0.6--&
android:name=&cn.jpush.android.ui.PopWinActivity&
android:theme=&@style/MyDialogStyle&
android:exported=&false&&
&/activity&
&!-- Required SDK核心功能--&
android:name=&cn.jpush.android.ui.PushActivity&
android:configChanges=&orientation|keyboardHidden&
android:theme=&@android:style/Theme.NoTitleBar&
android:exported=&false&&
&intent-filter&
&action android:name=&cn.jpush.android.ui.PushActivity& /&
&category android:name=&android.intent.category.DEFAULT& /&
&category android:name=&${applicationId}& /&
&/intent-filter&
&/activity&
&!-- Required
SDK核心功能--&
android:name=&cn.jpush.android.service.DownloadService&
android:enabled=&true&
android:exported=&false& &
&/service&
&!-- Required SDK 核心功能--&
&!-- 可配置android:process参数将PushService放在其他进程中 --&
android:name=&cn.jpush.android.service.PushService&
android:enabled=&true&
android:exported=&false&&
&intent-filter&
&action android:name=&cn.jpush.android.intent.REGISTER& /&
&action android:name=&cn.jpush.android.intent.REPORT& /&
&action android:name=&cn.jpush.android.intent.PushService& /&
&action android:name=&cn.jpush.android.intent.PUSH_TIME& /&
&/intent-filter&
&/service&
&!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 --&
&!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 --&
android:name=&cn.jpush.android.service.DaemonService&
android:enabled=&true&
android:exported=&true&&
&intent-filter&
&action android:name=&cn.jpush.android.intent.DaemonService& /&
&category android:name=&${applicationId}& /&
&/intent-filter&
&/service&
&!-- Required SDK核心功能--&
android:name=&cn.jpush.android.service.PushReceiver&
android:enabled=&true&
android:exported=&false&&
&intent-filter android:priority=&1000&&
&action android:name=&cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY& /&
&!--Required
显示通知栏 --&
&category android:name=&${applicationId}& /&
&/intent-filter&
&intent-filter&
&action android:name=&android.intent.action.USER_PRESENT& /&
&action android:name=&android.net.conn.CONNECTIVITY_CHANGE& /&
&/intent-filter&
&!-- Optional --&
&intent-filter&
&action android:name=&android.intent.action.PACKAGE_ADDED& /&
&action android:name=&android.intent.action.PACKAGE_REMOVED& /&
&data android:scheme=&package& /&
&/intent-filter&
&/receiver&
&!-- Required SDK核心功能--&
&receiver android:name=&cn.jpush.android.service.AlarmReceiver& android:exported=&false&/&
&!-- User defined.
For test only
用户自定义的广播接收器--&
android:name=&com.just.push.PushReceiver&
android:exported=&false&
android:enabled=&true&&
&intent-filter&
&action android:name=&cn.jpush.android.intent.REGISTRATION& /& &!--Required
用户注册SDK的intent--&
&action android:name=&cn.jpush.android.intent.UNREGISTRATION& /&
&action android:name=&cn.jpush.android.intent.MESSAGE_RECEIVED& /& &!--Required
用户接收SDK消息的intent--&
&action android:name=&cn.jpush.android.intent.NOTIFICATION_RECEIVED& /& &!--Required
用户接收SDK通知栏信息的intent--&
&action android:name=&cn.jpush.android.intent.NOTIFICATION_OPENED& /& &!--Required
用户打开自定义通知栏的intent--&
&action android:name=&cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK& /& &!--Optional 用户接受Rich Push Javascript 回调函数的intent--&
&action android:name=&cn.jpush.android.intent.CONNECTION& /&&!-- 接收网络变化 连接/断开 since 1.6.3 --&
&category android:name=&${applicationId}& /&
&/intent-filter&
&/receiver&
&!-- Required
. Enable it you can get statistics data with channel --&
&meta-data android:name=&JPUSH_CHANNEL& android:value=&developer-default&/&
&meta-data android:name=&JPUSH_APPKEY& android:value=&6efdce562915& /& &!--
&/&值来自开发者平台取得的AppKey--&
&/application&
&/manifest&
全局Application中代码编写
package com.just.
import android.app.A
import cn.jpush.android.api.JPushI
* Application天然是单例的,我们可以把一些全局信息和全局的方法写在Application中。
* Created by Administrator on
public class MyApplication extends Application {
* 这边应用一创建就会调用JPush方法
public void onCreate() {
super.onCreate();
System.out.println(&应用被创建了&);
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
Receiver中代码编写
package com.just.
import android.content.BroadcastR
import android.content.C
import android.content.I
import android.os.B
import android.util.L
import org.json.JSONE
import org.json.JSONO
import cn.jpush.android.api.JPushI
* Created by Administrator on
public class PushReceiver extends BroadcastReceiver {
private static final String TAG = &PushReceiver&;
//当受到消息,会回调onReceive()方法,onReceive中解析
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Log.d(TAG, &onReceive - & + intent.getAction());
if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
//收到自定义消息
}else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
//自定义消息可以发送json数据
System.out.println(&收到了自定义消息。消息内容是:& + bundle.getString(JPushInterface.EXTRA_MESSAGE));
// 自定义消息不会展示在通知栏,完全要开发者写代码去处理
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
System.out.println(&收到了通知&);
// 在这里可以做些统计,或者做些其他工作(通知栏被点击)
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
System.out.println(&用户点击打开了通知&);
// 在这里可以自己写代码去定义用户点击后的行为
//保存服务器推送下来的附加字段。这是个 JSON 字符串。
String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
System.out.println(&附加信息:&+extras);
JSONObject obj = new JSONObject(extras);
String url = obj.getString(&url&);
System.out.println(&url:&+url);
//跳浏览器
} catch (JSONException e) {
e.printStackTrace();
Log.d(TAG, &Unhandled intent - & + intent.getAction());
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11116次
排名:千里之外
原创:23篇
(1)(1)(2)(7)(14)(1)Posts - 95,
Articles - 0,
Comments - 602
lua?python?R?java?c/c++?javaScript?php?
23:49 by youxiachai, ... 阅读,
android gradle 插件已经发展到0.5.7,同时gradle 本身也到了1.8,相比两个月前,android gradle 更快,更完善,也更好用了,为了让各位androider 早日用上gradle这样的神器,特地写一篇关于gradle一些奇葩错误的解决指南.
使用最新的gradle android插件
以前我们写的时候会这么写
dependencies {
classpath 'com.android.tools.build:gradle:0.5.0'
不过,由于android gradle 插件的开发还是很活跃的,而且目前而言,可能还存在一些我们不知道的坑,但是,别人踩过,后边,官方修复,为了不踩坑,我建议android gradle 始终保持最新版本,写法如下:
dependencies {
classpath 'com.android.tools.build:gradle:0.5+'
由于代码编码与编译环境编码不一致,导致构建失败
有时候,我们的代码使用utf-8 保存的,但是,进行gradle build 的环境是gbk这类的,这时候会包如下错误:
15: 错误: 编码GBK的不可映射字符
* 鍑虹幇涓?枃璇锋敞鎰?
这个时候我们就需要手动的设置编译时编码类型.
tasks.withType(Compile) {
options.encoding = "UTF-8"
apply plugin: 'android'
android {}
android support v4 重复引用问题
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/Activ
ityCompatH
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:12
at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
at com.mand.dexer.Main.processClass(Main.java:490)
at com.mand.dexer.Main.processFileBytes(Main.java:459)
at com.mand.dexer.Main.access$400(Main.java:67)
at com.mand.dexer.Main$1.processFileBytes(Main.java:398)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpen
er.java:245)
出现这个问题的原因一般是由于我们这样的写法导致:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
某个相同的jar包,被复制到了build目录导致重复编译使编译时失败,
由于这个问题android support v4 出现的比较多,所以同类型的都归类为v4 问题吧.
要避免这个问题,我们尽量少使用依赖某个目录下所有包,毕竟android项目不想java web项目动不动就有好几十jar 包依赖.要修复这个v4,原理很简单,可以使用依赖maven的写法.
dependencies {
compile 'com.android.support:support-v4:13.0.0'
打包后缺少*.so文件
用指定依赖包的方式打包,我们会发现,最终打包后的jar没有了*.so文件,这个时候,我们需要自定义一个tasks,写如下:
task copyNativeLibs(type: Copy) {
from(new File('libs')) { include '**/*.so' }
into new File(buildDir, 'native-libs')
tasks.withType(Compile) { compileTask -& compileTask.dependsOn copyNativeLibs }
clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask -&
pkgTask.jniDir new File(buildDir, 'native-libs')
这样,在编译时,就会自动把libs目录下的**/*.so 文件复制到apk里面了.
构建多渠道包
在最新版本的gradle 0.5.7 中,构建多渠道包比之前简单多了,在以前,你需要这么写:
buildTypes {
packageNameSuffix ".hiapk"
playstore {
packageNameSuffix ".playstore"
sourceSets {
manifest.srcFile 'hiapk/AndroidManifest.xml'
playstore {
manifest.srcFile 'hiapk/AndroidManifest.xml'
要替换某个类型的文件需要自己手动写,渠道多了,这代码量是可想而知的多,在0.5.7中,进行了一个约定规则,构建,渠道包你只需
buildTypes {
packageNameSuffix ".hiapk"
playstore {
packageNameSuffix ".playstore"
sourceSets {
hiapk.setRoot('build-types/hiapk')
playstore.setRoot('build-types/playstore')
在项目的根目录下创建一个build-types的目录,在创建对应渠道的子目录,然后把一些,诸如要替换AndroidManifest.xml,里面友盟渠道号什么的,直接把xml复制进去就行,gradle在构建项目的时候,会自动的优先使用build-types下目录文件的目录,诸如,根据不同渠道,不同国家换个程序图标什么的,都只要放到目录下即可.10:30 提问
极光推送项目导入后报错
官网下载的JPushExample(219108)项目,导入ECLIPSE中,运行不了,报错
按赞数排序
相关的jar或so文件看看是否完整,他应该提供给你操作步骤的,仔细对照一下
从你的这2个报错来看都是因为你jar包的路径不对然后不能被加载引用,导致r文件生成不成功,你只需要看你的的文件夹是不是libs,因为有的导进来可能是lib,如果是对的那就只能重新removebuilder后重新加载jar,然后clean下
其他相似问题Android客户端与PHP服务端通讯(三)-极光推送注册使用 - PHP当前位置:& &&&Android客户端与PHP服务端通讯(三)-极光推送注册使用Android客户端与PHP服务端通讯(三)-极光推送注册使用&&网友分享于:&&浏览:0次Android客户端与PHP服务端通信(三)---极光推送注册使用概述
&&&&推送消息的方式有很多,在这里我选择了极光推送。本节分为上下两部分,首先通过注册极光推送并使用其Demo程序来看一下推送的效果,然后再一步一步的修改到自己的应用上。
注册登录极光推送
&&&&开发人员基本上都了解使用第三方的库,很多都需要注册才能使用,极光推送也不例外。直接登录极光推送官网/,注册自己的账号,注册的流程就不介绍了,这个都会。注册完直接登录,
登录后,可以由下图看到自己还没有创建任何应用。
&&&&点击“创建应用”,界面变为下图。
&&&&按自己需要,输入应用名称,上传应用图标,同时我使用的是Android环境下开发,在Android栏目中填写你即将创建的应用的包名,我填写的为下图所示(程序员朋友爱生活爱技术的同时一定要爱惜自己的身体啊)
&&&&填写完后,点击“创建我的应用”,下图可以看出成功创建了应用
下载并使用极光推送实例程序
&&&&点击上图中红线框出的“下载Android Example”,将其保存到电脑指定位置。
&&&&自带的实例程序中没有APK文件,用Eclipse打开程序,或许会出现以下错误
[ 21:45:54 - JPushExample(269090)] Unable to resolve target 'android-10'
[ 21:45:54 - JPushExample(269090)] Project compiler settings changed. Clean your project.
[ 21:45:55 - JPushExample(269090)] Unable to resolve target 'android-10'
&&&&这是因为我的Eclipse中没有下载支持这个版本的SDK包,解决方法就是将project.properties中的target=android-10换成支持的版本就可以了,这里我换成了target=android-18,然后按F5或者右键项目选择Refresh就可以了。
&&&&此时运行软件
&&&&然后回到极光推送的应用网页
&&&&选择推送\发送通知,点击立即发送
&&&&此时手机上就可以看到推送的通知了
&&&&实际上写到这里,我想大多数的程序设计者都应该知道怎么去做了,那就是对照着极光推送的官方文档和这个示例代码,修改移植到自己的程序当中,下一节我准备分析示例程序的框架,以备自己移植所需。
/************************************************************************************************
原创文章,转载请注明网址:http://blog.csdn.net/mybelief321/article/details/
*鲁阳高科工作室
*网 & & & 址:
*商务合作QQ:
*业 务 范 围:网站建设、桌面软件开发、Android\IOS开发、图像影视后期处理、PCB设计
***********************************************************************************************/
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有

我要回帖

更多关于 ps工具预设怎么导入 的文章

 

随机推荐