为什么系统在使用AudioManager时会显示警告信息?

时间:2014-05-28 07:42:15

标签: android

以下代码显示警告信息"静态字段Context.AUDIO_SERVICE应以静态方式访问",为什么?怎么解决?谢谢!

public class CallerMain extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.caller_main);

        findViewById(R.id.btnEnableCall).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                AudioManager mAudioManager = (AudioManager) getSystemService(getApplicationContext().AUDIO_SERVICE);
                int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );
                mAudioManager.setStreamVolume(AudioManager.STREAM_RING, max, 0);

            }
        });     
    }

}

2 个答案:

答案 0 :(得分:2)

AUDIO_SERVICEContext class

中的静态变量

你应该这样打电话

Context.AUDIO_SERVICE

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE)

答案 1 :(得分:1)

这是面向java对象的东西:

你将静态变量名称称为AUDIO_SERVICE非静态方式,而不是使用对象 调用静态变量使用类名来做到这一点。

在你的情况下:

1-您从中调用的对象名称静态变量:appContext 2-使用对象的静态变量名:AUDIO_SERVICE

如何修复:

1-简单调用静态变量静态方式而不使用对象,使用类名如下:

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE)