|
3 | 3 | import android.Manifest; |
4 | 4 | import android.app.AlertDialog; |
5 | 5 | import android.app.Notification; |
| 6 | +import android.app.NotificationChannel; |
6 | 7 | import android.app.NotificationManager; |
7 | 8 | import android.content.ActivityNotFoundException; |
8 | 9 | import android.content.ComponentName; |
|
11 | 12 | import android.content.Intent; |
12 | 13 | import android.content.SharedPreferences; |
13 | 14 | import android.content.pm.PackageManager; |
| 15 | +import android.graphics.Color; |
14 | 16 | import android.media.RingtoneManager; |
| 17 | +import android.os.Build; |
15 | 18 | import android.os.Bundle; |
16 | 19 | import android.os.Looper; |
17 | 20 | import android.provider.Settings; |
18 | 21 | import android.support.annotation.NonNull; |
19 | 22 | import android.support.v4.app.ActivityCompat; |
20 | | -import android.support.v4.app.NotificationCompat; |
21 | 23 | import android.support.v4.app.NotificationManagerCompat; |
22 | 24 | import android.support.v7.app.AppCompatActivity; |
23 | 25 | import android.text.TextUtils; |
@@ -327,28 +329,49 @@ public void checkPush(View v){ |
327 | 329 | // return; |
328 | 330 | // } |
329 | 331 |
|
330 | | - |
331 | | - |
332 | 332 | Notification mNotification; |
333 | 333 | NotificationManager mNotificationManager; |
334 | | - mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); |
335 | | - |
336 | | - mNotification = new NotificationCompat.Builder(this) |
337 | | - // 设置小图标 |
338 | | - .setSmallIcon(R.mipmap.ic_launcher) |
339 | | - .setTicker("这是一条测试推送信息,如果程序正常,则会提示监听权限正常") |
340 | | - // 设置标题 |
341 | | - .setContentTitle("V免签测试推送") |
342 | | - // 设置内容 |
343 | | - .setContentText("这是一条测试推送信息,如果程序正常,则会提示监听权限正常") |
344 | | - // 设置Notification提示铃声为系统默认铃声 |
345 | | - .setSound( |
346 | | - RingtoneManager.getActualDefaultRingtoneUri( |
347 | | - getBaseContext(), |
348 | | - RingtoneManager.TYPE_NOTIFICATION)) |
349 | | - |
350 | | - // 点击Notification的时候自动移除 |
351 | | - .build(); |
| 334 | + mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); |
| 335 | + |
| 336 | + |
| 337 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { |
| 338 | + //ChannelId为"1",ChannelName为"Channel1" |
| 339 | + NotificationChannel channel = new NotificationChannel("1", |
| 340 | + "Channel1", NotificationManager.IMPORTANCE_DEFAULT); |
| 341 | + channel.enableLights(true); //是否在桌面icon右上角展示小红点 |
| 342 | + channel.setLightColor(Color.GREEN); //小红点颜色 |
| 343 | + channel.setShowBadge(true); //是否在久按桌面图标时显示此渠道的通知 |
| 344 | + mNotificationManager.createNotificationChannel(channel); |
| 345 | + |
| 346 | + Notification.Builder builder = new Notification.Builder(this,"1"); //与channelId对应 |
| 347 | + |
| 348 | + mNotification = builder |
| 349 | + // 设置小图标 |
| 350 | + .setSmallIcon(R.mipmap.ic_launcher) |
| 351 | + .setTicker("这是一条测试推送信息,如果程序正常,则会提示监听权限正常") |
| 352 | + // 设置标题 |
| 353 | + .setContentTitle("V免签测试推送") |
| 354 | + // 设置内容 |
| 355 | + .setContentText("这是一条测试推送信息,如果程序正常,则会提示监听权限正常") |
| 356 | + .build(); |
| 357 | + }else{ |
| 358 | + mNotification = new Notification.Builder(MainActivity.this) |
| 359 | + // 设置小图标 |
| 360 | + .setSmallIcon(R.mipmap.ic_launcher) |
| 361 | + .setTicker("这是一条测试推送信息,如果程序正常,则会提示监听权限正常") |
| 362 | + // 设置标题 |
| 363 | + .setContentTitle("V免签测试推送") |
| 364 | + // 设置内容 |
| 365 | + .setContentText("这是一条测试推送信息,如果程序正常,则会提示监听权限正常") |
| 366 | + |
| 367 | + // 设置Notification提示铃声为系统默认铃声 |
| 368 | + .setSound( |
| 369 | + RingtoneManager.getActualDefaultRingtoneUri( |
| 370 | + getBaseContext(), |
| 371 | + RingtoneManager.TYPE_NOTIFICATION)) |
| 372 | + |
| 373 | + .build(); |
| 374 | + } |
352 | 375 |
|
353 | 376 | //Toast.makeText(MainActivity.this, "已推送信息,如果权限,那么将会有下一条提示!", Toast.LENGTH_SHORT).show(); |
354 | 377 |
|
|
0 commit comments