• 极光推送配置(Android Studio),亲测有效


    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    进行到这里就可以接收到通知了,但是如果你还想根据接收的消息做点什么

    step8:
    public class MyReceiver extends BroadcastReceiver {
        private static final String TAG = "MyReceiver";
    
        private NotificationManager nm;
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if (null == nm) {
                nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            }
    
            Bundle bundle = intent.getExtras();
    //        Log.d(TAG, "onReceive - " + intent.getAction() + ", extras: " + AndroidUtil.printBundle(bundle));
            if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
                Log.d(TAG, "JPush 用户注册成功");
    
            } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
                Log.d(TAG, "接受到推送下来的自定义消息");
    
            } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
                Log.d(TAG, "接受到推送下来的通知");
    
                receivingNotification(context,bundle);
    
            } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
                Log.d(TAG, "用户点击打开了通知");
    
                openNotification(context,bundle);
    
            } else {
                Log.d(TAG, "Unhandled intent - " + intent.getAction());
            }
        }
    
        private void receivingNotification(Context context, Bundle bundle){
            String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);
            Log.d(TAG, " title : " + title);
            String message = bundle.getString(JPushInterface.EXTRA_ALERT);
            Log.d(TAG, "message : " + message);
            String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
            Log.d(TAG, "extras : " + extras);
        }
    
        private void openNotification(Context context, Bundle bundle){
            String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
       String myValue = "";
            try {
                JSONObject extrasJson = new JSONObject(extras);
                myValue = extrasJson.optString("myKey");
            } catch (Exception e) {
                Log.w(TAG, "Unexpected: extras is not a valid json", e);
                return;
            }
            Log.d(TAG, "myValue : " + myValue);
            if (TYPE_THIS.equals(myValue)) {
                Intent mIntent = new Intent(context, ThisActivity.class);
                mIntent.putExtras(bundle);
                mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(mIntent);
            } else if (TYPE_ANOTHER.equals(myValue)){
                Intent mIntent = new Intent(context, AnotherActivity.class);
                mIntent.putExtras(bundle);
                mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(mIntent);
            }
        }
    }
    

    step9:最后别忘了在清单中注册

        <!--极光推送接收消息-->
            <receiver
                android:name="com.psm.admininstrator.lele8teach.MyReceiver"
                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.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.CONNECTION" /><!-- 接收网络变化 连接/断开 since 1.6.3 -->
                    <category android:name="com.psm.admininstrator.lele8teach" />
                </intent-filter>
            </receiver>
        </application>
    

    原博客地址:https://blog.csdn.net/jinjianghai/article/details/80336099

  • 相关阅读:
    EF Code First一对一、一对多、多对多关联关系配置
    ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
    ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
    ASP.NET Core 1.0 入门——Application Startup¶
    ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求
    EF Code First 学习笔记:约定配置
    ASPNET CORE初探
    EntityFramework 7.0之初探【基于VS 2015】(
    ASP.NET Core 开发
    sqlite3 外键作用原理和使用方法
  • 原文地址:https://www.cnblogs.com/wzqnxd/p/10511607.html
Copyright © 2020-2023  润新知