android - 为什么有来电时android会取消对silenseRinger()的支持?
问题描述
我想在有来电时使铃声静音,我设置了一个按钮来进行这样的测试:
silenceButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ITelephony iTelephony = getITelephony();
try {
iTelephony.silenceRinger();
} catch (RemoteException e) {
e.printStackTrace();
}
}
});
但是当我单击按钮并且 logcat 输出错误时,铃声不会静音:
PhoneInterfaceManager: silenseRinger not supported
我认为我getITelephony()
的工作正常,因为我可以根据它拒绝来电:
declineButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ITelephony iTelephony = getITelephony();
try {
iTelephony.endCall();
} catch (RemoteException e) {
e.printStackTrace();
}
}
});
那么为什么android停止支持静音来电呢?还有另一种方法可以做到这一点吗?
解决方案
另一种解决方案如下所示:
android.permission.MODIFY_AUDIO_SETTINGS
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//silent mode
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
阅读这些其他问题以获取更多信息:
推荐阅读
- reactjs - 我的 React-Firebase 应用程序很慢,如何让它更快
- android - 在 ADB,Android R 中杀死相机进程时出错
- c# - 如何在c#中制作弹跳表单
- terraform - 在运行 terrafor apply 时出现此错误
- php - POST: 405 (Method Not Allowed) 但它没有说明错误
- visual-c++ - 我在数据结构问题上遇到错误,无法识别
- json - 有没有办法防止在空手道报告中的场景中记录请求和响应?
- next.js - Next.js 生产模式公用文件夹无法动态访问
- vscode-settings - 如何将 PHP 可执行文件添加到 VSCODE?
- javascript - Highchart JS如何在饼图中为图例设置自定义咏叹调标签