2016-09-29 154 views
1

我一直在练习Android Studio,有时我得到崩溃,我没有任何解释。比如这个,它是一个按钮,可以在你按下它时隐藏你的设备。Android测试崩溃

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); 
        } 
       } 
     ); 

    } 

} 

注:当我创建的项目中,我选择了冰淇淋三明治(4.1),我跑我的代码上都是棉花糖设备(6.0 & 6.0.1)

为什么我得到崩溃和我如何防止它。谢谢。

更新:静音模式现在可用,但吐司不?

+1

将logcat添加到您的问题 – Jens

+0

@Kardio:首先检查权限。如果你有适当的权限,然后执行onClick代码。 – Pawan

+0

@Kardio你还没有发布任何LogCat,你如何期待任何人来帮助你? – Sufian

回答

0

myAudioManager =(AudioManager)getSystemService(Context.AUDIO_SERVICE);

我想你修改AndroidManifest.xml以添加必要的权限。对于同一个程序访问下面的链接,以获得更多关于做相同的信息。 http://www.tutorialspoint.com/android/android_audiomanager.htm

+0

静音模式工作!谢谢 但吐司没有显示 – Kardio

+0

尝试runOnUiThread显示吐司或在放置RingerMode之前放置吐司消息 –

0

myAudioManager未初始化。你的应用肯定会在那里崩溃。

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); 

尝试初始化myAudioManager

myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
+0

非常感谢您的回复。然而敬酒没有出现 – Kardio

1

继承人一切都修复了静音模式和烤面包。谢谢你们。

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(); 
        } 
       } 
     ); 

    } 

}