使用android内容观察器检测铃声音量的变化并记录下来?

kev*_*liu 0 android volume observer-pattern

有人可以给我一段代码,可以使用Android内容观察器来检测铃声音量的变化并记录下来吗?

小智 5

可能有点晚了.但我实施了以下解决方案.以下代码仅适用于Android <v4设备.我正在寻找v4设备的解决方案.也许有人知道?:

SettingsContentObserver mSettingsContentObserver = new SettingsContentObserver(new Handler());
_context.getApplicationContext().getContentResolver().registerContentObserver(android.provider.Settings.System.CONTENT_URI, true, mSettingsContentObserver);

public class SettingsContentObserver extends ContentObserver
{

    public SettingsContentObserver(Handler handler)
    {
        super(handler);
    }

    @Override
    public boolean deliverSelfNotifications()
    {
        return super.deliverSelfNotifications();
    }

    @Override
    public void onChange(boolean selfChange)
    {
        super.onChange(selfChange);

        try
        {
            long newRingerVolume = Settings.System.getLong(_context.getContentResolver(), Settings.System.VOLUME_RING);             
        }
        catch (SettingNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

  • 在Android 4+上你需要覆盖`public void onChange(boolean selfChange,Uri uri)`参见[javadoc](http://developer.android.com/reference/android/database/ContentObserver.html#onChange%28boolean,% 20android.net.Uri%29) (4认同)