第三者通報の通知をロック画面に表示しました
This commit is contained in:
parent
0c8c7c3d77
commit
844d7f43e5
|
@ -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);
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user