我一直在使用Android Studio练习,有时我会遇到崩溃,我没有解释。例如,这是一个按钮,只要按下它就会使设备静音。
import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button silentButton;
private AudioManager myAudioManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
silentButton = (Button) findViewById(R.id.silentButton);
silentButton.setOnClickListener(
new Button.OnClickListener(){
public void onClick(View v){
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Toast.makeText(MainActivity.this,"Silent Mode Activated!",Toast.LENGTH_LONG);
}
}
);
}
}
注意:当我创建项目时,我选择了Ice Cream Sandwich(4.1),我运行代码的设备都是Marshmallow(6.0& 6.0.1)
为什么我会崩溃,我该如何防止崩溃?感谢。
更新:静音模式现在可以正常工作,但Toast没有?
答案 0 :(得分:1)
Heres一切都修复了静音模式和吐司。谢谢大家。
import android.content.Context;
import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button silentButton;
private AudioManager myAudioManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
silentButton = (Button) findViewById(R.id.silentButton);
silentButton.setOnClickListener(
new Button.OnClickListener(){
public void onClick(View v){
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Toast.makeText(MainActivity.this,"Silent Mode Activated!",Toast.LENGTH_LONG ).show();
}
}
);
}
}
答案 1 :(得分:0)
myAudioManager未初始化。你的应用肯定会在那里崩溃。
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
尝试初始化myAudioManager
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
答案 2 :(得分:0)
myAudioManager =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
我认为您修改AndroidManifest.xml以添加必要的权限。对于链接下面的相同程序访问,以获取有关执行相同操作的更多信息。 http://www.tutorialspoint.com/android/android_audiomanager.htm