popcorn/Java/NotificationReceiver.java.txt

77 lines
3.1 KiB
Plaintext
Raw Normal View History

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());
}
}