极光推送的集成(下)

极光推送的集成(下)

一.下载Demo到本地

极光推送的集成(下)_第1张图片
image

二. 复制Demo里libs文件夹下的所有文件到项目的libs文件夹下

1.demo的libs文件夹下的文件
2.项目libs的文件夹

注意: 导入的jar包一定要添加到库

极光推送的集成(下)_第2张图片
image

说明 :使用android studio的开发者,如果使用jniLibs文件夹导入so文件,则仅需将所有cpu类型的文件夹拷进去;如果将so文件添加在module的libs文件夹下,注意在module的gradle配置中添加一下配置:

android {
    ......
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
            ......
        }
        ......
    }
    ......
}

三. AndroidManifest.xml配置

1.打开demo的xml配置文件复制所有权限到项目的配置文件

极光推送的集成(下)_第3张图片
image

代码

    


















 






2.application的内容复制)
复制备注为 "Required" 的部分,根据提示把包名和Appkey填好

代码

 
    
    
        
            
            
            
            
        
    



    

    
    
     
         
             
             
         
     

     
      

    
    
      
            
            
        
        
            
            
        
        
        
            
            
            
        
    

    
    
        
            
            
            
        
    
    
    
        
            
            
        
    

    
    
    

    
    

    
    
    
    
        
            
            
        
    

    
     
         
             
             
             
             
             
             
             
             
             
             
             
         
     

    
    
    
    
    
    
    
    

把包名和和appkey都换好后发现有两个错误,根据提示的包名到demo的目录下找到,复制到项目中,再复制包名替换


极光推送的集成(下)_第4张图片
image
极光推送的集成(下)_第5张图片
image

注意:把关联的两个复制进来后发先会报错,因为这个类调用了别类的方法,你可以根据需要复制也一起复制进来


极光推送的集成(下)_第6张图片
image

四. Acitivy里的代码添加

可以参考demo的MainActivity的代码进行复制,再初始化时调用registerMessageReceiver()方法

主要是这两个方法:

 public void registerMessageReceiver() {
    mMessageReceiver = new MessageReceiver();
    IntentFilter filter = new IntentFilter();
    filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
    filter.addAction(MESSAGE_RECEIVED_ACTION);
    LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
}

public class MessageReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
                String messge = intent.getStringExtra(KEY_MESSAGE);
                String extras = intent.getStringExtra(KEY_EXTRAS);
                StringBuilder showMsg = new StringBuilder();
                showMsg.append(KEY_MESSAGE + " : " + messge + "\n");
                if (!ExampleUtil.isEmpty(extras)) {
                    showMsg.append(KEY_EXTRAS + " : " + extras + "\n");
                }
            }
        } catch (Exception e){
        }
    }
}

补充:myReceiver调用了MainActivity这个变量,并在不同的生命周期改变其值

public static boolean isForeground = false;
@Override
protected void onResume() {
    isForeground = true;
    super.onResume();
}


@Override
protected void onPause() {
    isForeground = false;
    super.onPause();
}

@Override
protected void onDestroy() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
super.onDestroy();
}
最后在初始化时调用Jpush的初始化方法

 // 初始化 JPush。如果已经初始化,但没有登录成功,则执行重新登录。
    JPushInterface.init(getApplicationContext());

五. 混淆

集成 JPush Android SDK 的混淆

请下载4.x及以上版本的proguard.jar, 并替换你Android Sdk "tools\proguard\lib\proguard.jar"
请在工程的混淆文件中添加以下配置:

-dontoptimize
-dontpreverify

-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
-keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; }

-dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; }

2.0.5 ~ 2.1.7 版本有引入 gson 和 protobuf ,增加排除混淆的配置。(2.1.8版本不需配置)

-dontwarn com.google.**
-keep class com.google.gson.** {*;}
-keep class com.google.protobuf.** {*;}

六.完成,发消息测试

一个简单的极光推送就完成了.觉得文章不错请点赞你的喜欢是我创作的动力

你可能感兴趣的:(极光推送的集成(下))