极光推送自定义通知栏样式

# 自定义通知栏 #
## 先自定义Receiver ##
<receiver android:enabled="true" android:name="Your Receiver">
    <intent-filter>
   
        <category android:name="You package Name">
    </category></action></action></action></action></intent-filter>
</receiver>


private static final String TAG = "MyReceiver";
 
    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
            Log.i(TAG, "JPush用户注册成功");
        } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent
                .getAction())) {
            Log.i(TAG, "接受到推送下来的自定义消息");
            receivingNotification(context, bundle);
        } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent
                .getAction())) {
            Log.i(TAG, "接受到推送下来的通知");
 
        } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent
                .getAction())) {
            Log.i(TAG, "用户点击打开了通知");
            openNotification(context, bundle);
        }
    }


## 在receivingNotification()中自定义notification通知栏 ##
private void receivingNotification(Context context, Bundle bundle) {
    NotificationManager manager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
    String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
    // 使用notification
    // 使用广播或者通知进行内容的显示
    NotificationCompat.Builder builder = new NotificationCompat.Builder(
            context);
    builder.setContentText(message).setSmallIcon(R.drawable.notification_icon_2).setContentTitle(JPushInterface.EXTRA_TITLE);
    builder.setDefaults(Notification.DEFAULT_SOUND);
    manager.notify(1,builder.build());
}


我试图更改下来通知栏里的icon,各种方法都试过,文档看了无数遍,发现这个图标是不可更改的,永远和APP程序图标一样的。。



# 带有下拉效果 #
还有一种自定义通知栏,带有下拉效果。是官网介绍的。
布局文件customer_notitfication_layout.xml
 <!--?xml version="1.0" encoding="utf-8"?-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:orientation="vertical">

            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#286CA6"
                android:textSize="20sp"
                >

                <TextView
                    android:id="@+id/text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="#6FA45E"
                    android:textSize="16sp"/>
            </TextView>
        </LinearLayout>

    </ImageView>
</LinearLayout>
## 初始化通知效果 ##
CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(
        MainActivity.this, R.layout.customer_notitfication_layout,
        R.id.icon, R.id.title, R.id.text);
// 指定定制的 Notification Layout
builder.statusBarDrawable = R.drawable.notification_icon;
// 指定最顶层状态栏小图标
builder2.layoutIconDrawable = R.drawable.notification_icon;
// 指定下拉状态栏时显示的通知图标
JPushInterface.setPushNotificationBuilder(1, builder1);

这里面有一个方法builder.statusBarDrawable,这个设置的是一个状态栏图标,不是下拉界面里那个。当来通知时,手机顶部会滚动提示一下来消息了。这里设置的图标就是刚来通知在顶部提示的,而不是上图里红框里那个。
这种带下来效果



# 官网提供的一种简版 #
## 还有一种简版的,也是官网demo,mark一下。设置成默认,发送通知 ##
BasicPushNotificationBuilder builder2 = new BasicPushNotificationBuilder(
            MainActivity.this);
    builder2.statusBarDrawable = R.drawable.logo;
    builder2.notificationFlags = Notification.FLAG_AUTO_CANCEL; // 设置为自动消失
    builder2.notificationDefaults = Notification.DEFAULT_SOUND
            | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS; // 设置为铃声与震动都要
    JPushInterface.setDefaultPushNotificationBuilder(builder2);
    JPushInterface.setPushNotificationBuilder(2, builder2);
setPushNotificationBuilder(2, builder2);设置builder2的样式编号为2,发送时指定编号发送。




参考链接:http://blog.csdn.net/u014733374/article/details/43702225
http://blog.csdn.net/yaoliangjun306/article/details/51330147

http://blog.csdn.net/superbigfollicle/article/details/53032222





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Firebase 推送消息可以通过自定义通知来展示更加个性化的消息。 首先,在 Firebase 控制台中,你需要为你的应用程序创建一个自定义通知通道。在创建通道时,你可以指定通知的名称、描述和重要性级别等信息。 接下来,你需要在你的 Android 应用程序中创建一个自定义通知布局。你可以使用一个 XML 文件来定义布局,其中包含你想要显示的所有文本、图像和其他元素。然后,在接收到 Firebase 消息时,你可以使用 RemoteViews 类将自定义布局与通知相关联。 最后,在接收到 Firebase 消息时,你需要在代码中使用 NotificationCompat.Builder 类构建自定义通知。在构建通知时,你可以指定标题、文本和自定义布局等信息。最后,使用 NotificationManagerCompat 类将通知发送到系统通知中。 以下是一个示例代码片段,可以帮助你开始构建自定义通知: ``` // 创建自定义通知通道 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel = new NotificationChannel(channelId, channelName, importance); channel.setDescription(channelDescription); NotificationManager notificationManager = getSystemService(NotificationManager.class); notificationManager.createNotificationChannel(channel); } // 创建自定义通知布局 RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout); contentView.setTextViewText(R.id.title, notificationTitle); contentView.setTextViewText(R.id.text, notificationText); // 构建自定义通知 NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId) .setSmallIcon(R.drawable.notification_icon) .setCustomContentView(contentView) .setPriority(NotificationCompat.PRIORITY_HIGH); // 发送通知 NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(notificationId, builder.build()); ``` 注意:在使用自定义通知时,你需要确保你的应用程序有足够的权限来发送通知。如果你的应用程序没有这些权限,则无法正常发送通知

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值