以下代码显示警告信息"静态字段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);
}
});
}
}
答案 0 :(得分:2)
AUDIO_SERVICE
是Context
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)