Housinnhennkougo #17

Merged
N-YOKU-jp merged 10 commits from housinnhennkougo into main 2024-01-19 03:20:35 +00:00
2 changed files with 31 additions and 9 deletions
Showing only changes of commit 844d7f43e5 - Show all commits

View File

@ -4,10 +4,10 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
public class NotificationReceiver extends BroadcastReceiver {//通知をクリックしたときにアプリを起動する処理 public class NotificationReceiver extends BroadcastReceiver {//通知をタップしたときにアプリを起動する処理
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (intent.getAction() != null && intent.getAction().equals("OPEN_ACTIVITY")) {// 通知がクリックされたときの処理 if (intent.getAction() != null && intent.getAction().equals("OPEN_ACTIVITY")) {// 通知がタップされたときの処理
Intent openIntent = new Intent(context, MainActivity.class); // MainActivityを起動 Intent openIntent = new Intent(context, MainActivity.class); // MainActivityを起動
openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(openIntent); context.startActivity(openIntent);

View File

@ -9,6 +9,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Color;
import android.os.Build; import android.os.Build;
import android.os.IBinder; import android.os.IBinder;
import android.os.Vibrator; import android.os.Vibrator;
@ -83,7 +84,7 @@ public class TestService extends Service {
NotificationManager notificationManager = getSystemService(NotificationManager.class); NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel); notificationManager.createNotificationChannel(channel);
Log.d("nt", "レスポンスを検知しました2"); Log.d("nt", "レスポンスを検知しました2");
NotificationSetting();//通知に関する設定のメソッドAndroid8.0以降のバックグラウンド処理に関する設定など NotificationSetting();//通知に関する設定のメソッド
Notification(getApplicationContext());//バイブレーションバナーによる通知を行うメソッド Notification(getApplicationContext());//バイブレーションバナーによる通知を行うメソッド
} else {//それ以外のとき } else {//それ以外のとき
ResetReported();//ResetReported();を処理FireBaseのisReportedをfalseにする ResetReported();//ResetReported();を処理FireBaseのisReportedをfalseにする
@ -120,7 +121,6 @@ public class TestService extends Service {
} }
public void NotificationSetting() {//通知に関する設定の処理を行うメソッド public void NotificationSetting() {//通知に関する設定の処理を行うメソッド
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {//Android 8.0以降であることを確認する
int importance = NotificationManager.IMPORTANCE_DEFAULT; int importance = NotificationManager.IMPORTANCE_DEFAULT;
//通知チャネルの実装 //通知チャネルの実装
NotificationChannel channel = new NotificationChannel("CHANNEL_ID", "通知", importance); NotificationChannel channel = new NotificationChannel("CHANNEL_ID", "通知", importance);
@ -128,10 +128,11 @@ public class TestService extends Service {
NotificationManager notificationManager = getSystemService(NotificationManager.class); NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel); notificationManager.createNotificationChannel(channel);
}
} }
public void Notification(Context context) {//実際に通知を行うメソッド public void Notification(Context context) {//実際に通知を行うメソッド
final String CHANNEL_ID = "my_channel_id";
// 通知がクリックされたときに送信されるIntent // 通知がクリックされたときに送信されるIntent
Intent intent = new Intent(context, MainActivity.class); Intent intent = new Intent(context, MainActivity.class);
intent.setAction("OPEN_ACTIVITY"); intent.setAction("OPEN_ACTIVITY");
@ -141,13 +142,34 @@ public class TestService extends Service {
PendingIntent pendingIntent = PendingIntent.getActivity(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE); PendingIntent pendingIntent = PendingIntent.getActivity(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE);
((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).vibrate(2000);//バイブレーション ((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).vibrate(2000);//バイブレーション
@SuppressLint("NotificationTrampoline") NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
@SuppressLint("NotificationTrampoline") NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "CHANNEL_ID")
.setSmallIcon(android.R.drawable.ic_menu_info_details) .setSmallIcon(android.R.drawable.ic_menu_info_details)
.setContentTitle("子供の置き去りをしていませんか?")//通知のタイトル .setContentTitle("子供の置き去りをしていませんか?")//通知のタイトル
.setContentText("第三者からの通報が行われました。")//通知の本文 .setContentText("第三者からの通報が行われました。")//通知の本文
.setContentIntent(pendingIntent) .setContentIntent(pendingIntent)//通知をタップするとActivityへ移動する
.setAutoCancel(true) .setAutoCancel(true)//通知をタップすると削除する
.setPriority(NotificationCompat.PRIORITY_DEFAULT); .setPriority(NotificationCompat.PRIORITY_HIGH) // プライオリティを高く設定
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC); // ロック画面に表示する
// NotificationChannelの作成Android 8.0以降
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
if (notificationManager != null) {
NotificationChannel channel = new NotificationChannel(
CHANNEL_ID,
"Channel Name",
NotificationManager.IMPORTANCE_HIGH
);
channel.setDescription("Channel Description");
channel.enableLights(true);
channel.setLightColor(Color.RED);
channel.enableVibration(true);
notificationManager.createNotificationChannel(channel);
}
}
NotificationManager notificationManager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE); NotificationManager notificationManager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {