77 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | package jp.usaya.lib; | ||
|  | 
 | ||
|  | import android.app.Notification; | ||
|  | import android.app.NotificationManager; | ||
|  | import android.app.PendingIntent; | ||
|  | import android.app.Service; | ||
|  | import android.content.BroadcastReceiver; | ||
|  | import android.content.Context; | ||
|  | import android.content.Intent; | ||
|  | import android.content.pm.ApplicationInfo; | ||
|  | import android.content.pm.PackageManager; | ||
|  | import android.content.pm.PackageManager.NameNotFoundException; | ||
|  | import android.graphics.Bitmap; | ||
|  | import android.graphics.BitmapFactory; | ||
|  | import android.net.Uri; | ||
|  | import android.support.v4.app.NotificationCompat; | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Created by sutoatsushi on 2018/03/23. | ||
|  |  */ | ||
|  | 
 | ||
|  | public class NotificationReceiver extends BroadcastReceiver { | ||
|  | 
 | ||
|  |     @Override | ||
|  |     public void onReceive(Context context, Intent intent) { | ||
|  | 
 | ||
|  |         //値の取得 | ||
|  |         Integer primary_key = intent.getIntExtra("PRIMARY_KEY", 0); | ||
|  |         String ticker = intent.getStringExtra("TICKER"); | ||
|  |         String content_title = intent.getStringExtra("CONTENT_TITLE"); | ||
|  |         String content_text = intent.getStringExtra ("CONTENT_TEXT"); | ||
|  |         String sound_path = intent.getStringExtra("SOUND_PATH"); | ||
|  | 
 | ||
|  |         // intentからPendingIntentを作成 | ||
|  |         PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); | ||
|  | 
 | ||
|  |         // LargeIcon の Bitmap を生成 | ||
|  |         final PackageManager pm = context.getPackageManager(); | ||
|  |         ApplicationInfo applicationInfo = null; | ||
|  |         try { | ||
|  |             applicationInfo = pm.getApplicationInfo(context.getPackageName(),PackageManager.GET_META_DATA); | ||
|  |         } catch (NameNotFoundException e) { | ||
|  |             e.printStackTrace(); | ||
|  |             return; | ||
|  |         } | ||
|  |         final int appIconResId = applicationInfo.icon; | ||
|  |         Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(), appIconResId); | ||
|  | 
 | ||
|  |         // NotificationBuilderを作成 | ||
|  |         NotificationCompat.Builder builder = new NotificationCompat.Builder(context); | ||
|  |         builder.setContentIntent(pendingIntent); | ||
|  |         builder.setTicker(ticker);                    //通知到着時に通知バーに表示(4.4まで) | ||
|  |         builder.setSmallIcon(appIconResId);           //アイコン | ||
|  |         builder.setContentTitle(content_title);       // タイトル | ||
|  |         builder.setContentText(content_text);         // 本文(サブタイトル) | ||
|  |         builder.setLargeIcon(largeIcon);              //開いた時のアイコン | ||
|  |         builder.setWhen(System.currentTimeMillis());  //通知に表示される時間(※通知時間ではない!) | ||
|  | 
 | ||
|  |         // 通知時の音・バイブ・ライト | ||
|  |         if( sound_path.equals("Default") ){ | ||
|  |             builder.setDefaults(Notification.DEFAULT_SOUND); | ||
|  |         }else{ | ||
|  |             builder.setSound( Uri.parse(sound_path)); | ||
|  |         } | ||
|  |         builder.setDefaults(Notification.DEFAULT_VIBRATE); | ||
|  |         builder.setDefaults(Notification.DEFAULT_LIGHTS); | ||
|  |         builder.setAutoCancel(true); | ||
|  | 
 | ||
|  |         // NotificationManagerを取得 | ||
|  |         NotificationManager manager = (NotificationManager) context.getSystemService(Service.NOTIFICATION_SERVICE); | ||
|  |         // Notificationを作成して通知 | ||
|  |         manager.notify(primary_key, builder.build()); | ||
|  |     } | ||
|  | 
 | ||
|  | } |