我的应用程序中有一项服务,用于在充电器连接时提醒用户,但问题是,一些设备即使都是Android 8版本,定制声音也不能工作。我的代码:‘
public void notification(Intent intent) {
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS,-1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ;
Intent enterApp_intent = new Intent(getApplicationContext(),MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(),0,enterApp_intent,0);
Bitmap largeIcon = BitmapFactory.decodeResource(getApplicationContext().getResources(),R.drawable.main_icon);
NotificationCompat.Builder charging_builder = new
NotificationCompat.Builder(getApplicationContext());
charging_builder.setContentTitle("Title");
charging_builder.setContentText("Content Text");
charging_builder.setContentIntent(pendingIntent);
charging_builder.setLargeIcon(largeIcon);
charging_builder.setSmallIcon(R.drawable.null_shape);
charging_builder.setDefaults(NotificationManager.IMPORTANCE_MAX);
charging_builder.setColor(Color.parseColor("#1fd699"));
charging_builder.setOngoing(false);
NotificationManager notificationManager = (NotificationManager) getBaseContext().getSystemService(Context.NOTIFICATION_SERVICE);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build();
NotificationChannel charging_notificationChanel = new NotificationChannel("charging_battery","charging battery",
NotificationManager.IMPORTANCE_DEFAULT);
charging_notificationChanel.setDescription("Charging notification");
charging_notificationChanel.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE+"://"+getBaseContext().getPackageName()+"/"+
R.raw.charging_notification),audioAttributes);
charging_notificationChanel.enableVibration(false);
charging_notificationChanel.enableLights(true);
notificationManager.createNotificationChannel(charging_notificationChanel);
charging_builder.setChannelId("charging_battery");
}
if(isCharging){ // charging
notificationManager.notify(19,charging_builder.build());
}
}`通知显示在所有设备上,,但,一些,三星,设备不存在声音?所有这些都与API 26一起工作,为什么呢?
发布于 2021-03-07 13:53:55
正如您在创建和管理通知:中所看到的,如果您针对Android8.0( appear 26)并在不指定通知通道的情况下发布通知,则通知不会出现,并且系统会记录错误。
万一您可以尝试这种方法,您可能需要将您的通道id添加到清单中,如下所示:
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="@string/default_notification_channel_id" />
发布于 2021-03-11 12:49:39
确保你在做这两件事:
https://stackoverflow.com/questions/66441472
复制相似问题