相关疑难解决方法(0)

在Android 7(API级别24)中,我的应用程序不允许静音手机(将铃声模式设置为静音)

我有一个应用程序,通过使用AudioManager将手机静音,并使用此代码将铃声模式设置为静音:

AudioManager audioManager = 
    (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
try {
    audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

这适用于Android 6,但现在使用Android 7,我收到以下错误:

System.err: java.lang.SecurityException: Not allowed to change Do Not Disturb state
System.err: at android.os.Parcel.readException(Parcel.java:1683)
System.err: at android.os.Parcel.readException(Parcel.java:1636)
System.err: at android.media.IAudioService$Stub$Proxy.setRingerModeExternal(IAudioService.java:962)
System.err: at android.media.AudioManager.setRingerMode(AudioManager.java:1022)
System.err: at controllers.SearchResultController.mutePhone(SearchResultController.java:185)
Run Code Online (Sandbox Code Playgroud)

有什么新的权限我需要要求才能使这项工作?

我查看了Android权限列表,但找不到任何相似的内容.

android android-audiomanager android-7.0-nougat

38
推荐指数
3
解决办法
2万
查看次数

如何静音SpeechRecognizer的哔声?

之前已经问过,但似乎没有人有解决方案:将SpeechRecognizer的哔声静音

不过,我仍然想知道是否有人知道如何静音SpeechRecognizer的哔哔声?

我创建了speechRecognizer对象:private SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer (this);

然后在我的课堂上我像这样实例化speechRecognizer

sr.setRecognitionListener(new listener());
Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
        RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);             
i.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getApplication()
        .getClass().getName());
i.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 6);
i.putExtra(RecognizerIntent.EXTRA_PROMPT, "");
i.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, 7000);
sr.startListening(i);
Run Code Online (Sandbox Code Playgroud)

任何有好主意的人?我研究过我可以创建AudioManager(AudioManager mAudioManager)的对象,然后使用setStreamSolo(),我可以静音.但我不确定如何实现这一点.我将它添加到我的speechRecognizer实例化代码中,没有任何反应.这是我应该从我的主课那里打电话的吗?

mAudioManager.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true);
Run Code Online (Sandbox Code Playgroud)

先感谢您.

audio android voice-recognition

7
推荐指数
1
解决办法
1万
查看次数

如何关闭来电的电话铃声?

如何关闭来电的电话铃声?这可以通过编程方式完成吗?现在我使用下面的代码,但它不起作用:

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
                am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Run Code Online (Sandbox Code Playgroud)

android

1
推荐指数
1
解决办法
4824
查看次数