Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [android]JPush自定義通知欄

[android]JPush自定義通知欄

編輯:關於Android編程

JPush嵌入工程

官網詳解

自定義通知欄

先自定義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

 



     
     
    
    
    
   


初始化通知效果

 

 

		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,發送時指定編號發送。

\

 

 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved