如何在没有振动的情况下将设备设置为静音模式

时间:2017-12-29 13:00:35

标签: android android-audiomanager

我的应用程序具有某种功能,我需要将设备设置为无振动的静音模式。这是由通知到达触发的。

我使用以下代码执行此操作:

AudioManager audioManager =  (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

当设备屏幕亮起时,这种方法有效,但当设备屏幕关闭(闲置时)一段时间后,它不能工作多次。

有没有办法让这项工作每次,即使手机屏幕关闭?

2 个答案:

答案 0 :(得分:0)

试试这个

NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this);

这将导致振动模式使用通知生成器并移除设置振动,这将禁用振动。

处理声音和振动的示例:

Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentText(body)
                .setContentTitle(title)
                .setSound(soundUri)
                .setLargeIcon(icon)
                .setSound(soundUri)
                .setLights(Color.parseColor("#ffb400"), 50, 10)
                .setVibrate(new long[]{500, 500, 500, 500})
                .setAutoCancel(true)
                .setContentIntent(pendingIntent);

        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(0, notificationBuilder.build());

答案 1 :(得分:-1)

可以非常简单的方式完成。 首先,你需要获得android音频管理器的参考

    AudioManager audioManager =  (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

然后使用AudioManager的引用调用AudioManager的方法。

audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

此代码将手机的振铃模式设置为静音,无振动。