android 9充电提示音,无声需要重启才能恢复

90 篇文章 3 订阅

错误log如下:

07-09 17:13:42.112 W/NuPlayerRenderer(  648): onDrainAudioQueue(): audio sink is not ready
07-09 17:13:42.113 E/NuPlayerDecoder(  648): Renderer reported 0xffffffed when changing audio output format
07-09 17:13:42.113 W/NuPlayerRenderer(  648): onDrainAudioQueue(): audio sink is not ready
07-09 17:13:42.113 E/NuPlayer(  648): received error(0xffffffed) from audio decoder, flushing(0), now shutting down
07-09 17:13:42.113 D/NuPlayerDriver(  648): notifyListener_l(0xa4513300), (100, 1, -19, -1), loop setting(0, 0)
07-09 17:13:42.113 E/MediaPlayerNative( 1448): error (1, -19)
07-09 17:13:42.113 E/MediaPlayer( 1448): Error (1,-19)

解决
Notifier.java

diff --git a/frameworks/base/services/core/java/com/android/server/power/Notifier.java b/frameworks/base/services/core/java/com/android/server/power/Notifier.java
old mode 100644
new mode 100755
index eecf17a..5f01808
--- a/frameworks/base/services/core/java/com/android/server/power/Notifier.java
+++ b/frameworks/base/services/core/java/com/android/server/power/Notifier.java
@@ -57,6 +57,8 @@ import com.android.server.LocalServices;
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.statusbar.StatusBarManagerInternal;
 
+import java.util.logging.Logger;
+
 /**
  * Sends broadcasts about important power state changes.
  * <p>
@@ -151,7 +153,9 @@ final class Notifier {
 
     // True if a user activity message should be sent.
     private boolean mUserActivityPending;
-
+    /*meig:jicong.wang add for bug 12226 start {@*/
+    private Ringtone mRingtone;
+    /*meig:jicong.wang add for bug 12226 end }@*/
     public Notifier(Looper looper, Context context, IBatteryStats batteryStats,
             SuspendBlocker suspendBlocker, WindowManagerPolicy policy) {
         mContext = context;
@@ -187,6 +191,9 @@ final class Notifier {
         try {
             mBatteryStats.noteInteractive(true);
         } catch (RemoteException ex) { }
+        /*meig:jicong.wang add for bug 12226 start {@*/
+        initChargeRingtone();
+        /*meig:jicong.wang add for bug 12226 end @}*/
     }
 
     /**
@@ -738,7 +745,8 @@ final class Notifier {
      * Plays the wireless charging sound for both wireless and non-wireless charging
      */
     private void playChargingStartedSound() {
-        final String soundPath = Settings.Global.getString(mContext.getContentResolver(),
+        /*meig:jicong.wang modify for bug 12226 start {@*/
+        /*final String soundPath = Settings.Global.getString(mContext.getContentResolver(),
                 Settings.Global.CHARGING_STARTED_SOUND);
         if (isChargingFeedbackEnabled() && soundPath != null) {
             final Uri soundUri = Uri.parse("file://" + soundPath);
@@ -749,7 +757,21 @@ final class Notifier {
                     sfx.play();
                 }
             }
+        }*/
+        try {
+            if (mRingtone!=null && mRingtone.isPlaying()){
+                Slog.d(TAG,"charge ringtone is playing stop first");
+                mRingtone.stop();
+            }
+
+            if (isChargingFeedbackEnabled()){
+                Slog.d(TAG,"play charge ringtone now");
+                mRingtone.play();
+            }
+        } catch (Exception e){
+            e.printStackTrace();
         }
+        /*meig:jicong.wang modify for bug 12226 end @}*/
     }
 
     private void showWirelessChargingStarted(int batteryLevel) {
@@ -786,7 +808,23 @@ final class Notifier {
                 == Settings.Global.ZEN_MODE_OFF;
         return enabled && dndOff;
     }
-
+    /*meig:jicong.wang add for bug 12226 start {@*/
+    private void initChargeRingtone(){
+        Slog.d(TAG,"initChargeRingtone start");
+        String soundPath = Settings.Global.getString(mContext.getContentResolver(),
+                Settings.Global.CHARGING_STARTED_SOUND);
+        if (soundPath != null) {
+            final Uri soundUri = Uri.parse("file://" + soundPath);
+            if (soundUri != null) {
+                mRingtone = RingtoneManager.getRingtone(mContext, soundUri);
+                if (mRingtone != null) {
+                    mRingtone.setStreamType(AudioManager.STREAM_SYSTEM);
+                    Slog.d(TAG,"charge sound mRingtone has init");
+                }
+            }
+        }
+    }
+    /*meig:jicong.wang add for bug 12226 end @}*/
     private final class NotifierHandler extends Handler {
 
         public NotifierHandler(Looper looper) {
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值