我的应用程序中有一个服务,用于在连接充电器时向用户发出警报,但问题是即使所有设备都是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上运作的。为什么会这样呢?