私の目標は、電話をミュートする機能をサポートすることです(おそらくバイブレーションが有効/無効になっている)ので、電話やSMSが受信されてもノイズは発生しません
電話のミュートを解除しますが、「ミュート解除のパスワード」の入力を求めます。
そして、これは他のアプリケーションでも有効であり、ミュートを解除する前にパスワードの入力を要求します...
これどうやってするの?AndroidManifestにはどのような権限が必要ですか?
以前のStackoverflowでは、Androidのミュート/ミュート解除電話。
これらの回答では、権限とコーディングの両方について説明しています。また、タスカーはあなたがやろうとしていることすべてを処理することができます。
そして、ここにチュートリアルへのリンクがあります。
以下のコードはエミュレーターで正常に実行されます。実行すると、通知領域でミュートがオンになっていることがわかります。コードに加えて、の(使用)権限を追加する必要がありましたandroid.permission.MODIFY_AUDIO_SETTINGS
。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
AudioManager audio = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
return true;
}