Android BroadCast接收器,用于振动和静音

mal*_*k M 4 android android-intent

我需要一个广泛的接收器实现,用户可以检查手机是从Ringer模式转为静音还是静音振动,反之亦然.

int volumeValue = (Integer)intent.getExtras().get("android.media.EXTRA_VOLUME_STREAM_VALUE");
Run Code Online (Sandbox Code Playgroud)

我尝试了这段代码,但它不会给我太多帮助,因为它从振铃器到静音和静音振动相同,反之亦然.我实际上想要抓住手机从铃声模式到静音和静音振动的动作提前谢谢

Nam*_*lay 9

将此代码写入接收器的onCreate()方法:

 BroadcastReceiver receiver=new BroadcastReceiver(){
          @Override
          public void onReceive(Context context, Intent intent) {
               //code...
          }
      };
      IntentFilter filter=new IntentFilter(
                      AudioManager.RINGER_MODE_CHANGED_ACTION);
      registerReceiver(receiver,filter);
Run Code Online (Sandbox Code Playgroud)

同时将其添加到mainfest文件中:

<receiver android:name=".receivers.RingerModeStateChangeReceiver" >
        <intent-filter>
            <action android:name="android.media.RINGER_MODE_CHANGED" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)