android.media.AudioManager#setRingerMode ( )源码实例Demo

下面列出了android.media.AudioManager#setRingerMode ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Android-Audio-Recorder   文件: Sound.java
public void silent() {
    SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(context);
    if (shared.getBoolean(MainApplication.PREFERENCE_SILENT, false)) {
        AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        soundMode = am.getRingerMode();

        if (soundMode == AudioManager.RINGER_MODE_SILENT) {
            // we already in SILENT mode. keep all unchanged.
            soundMode = -1;
            return;
        }

        am.setStreamVolume(AudioManager.STREAM_RING, am.getStreamVolume(AudioManager.STREAM_RING), AudioManager.FLAG_SHOW_UI);
        am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    }
}
 
源代码2 项目: Noyze   文件: RingerModeTransition.java
/**
 * @return An ordered list of the ringer modes, from
 * highest to lowest (volumes [1], [0], [0] again).
 */
public int[] apply(AudioManager manager) {
    // The algorithm here is to go from volume 0 (again) => 0 => 1,
    // and with each change, record the ringer modes.
    final int[] MODES = new int[3];
    MODES[0] = RINGER_MODE_NORMAL;
    final int STREAM = STREAM_RING;
    final int MODE = manager.getRingerMode();
    final int startVolume = manager.getStreamVolume(STREAM);
    // API quirk: volume must be decremented from 1 to get ringer mode change
    manager.setStreamVolume(STREAM, 1, FLAG_SHOW_UI);
    manager.setRingerMode(RINGER_MODE_NORMAL);
    manager.adjustStreamVolume(STREAM, ADJUST_LOWER, FLAG_SHOW_UI & FLAG_ALLOW_RINGER_MODES);
    manager.adjustStreamVolume(STREAM, ADJUST_LOWER, FLAG_SHOW_UI & FLAG_ALLOW_RINGER_MODES);
    MODES[2] = manager.getRingerMode();
    manager.adjustStreamVolume(STREAM, ADJUST_RAISE, FLAG_SHOW_UI & FLAG_ALLOW_RINGER_MODES);
    MODES[1] = manager.getRingerMode();
    // There are two possible ways the device may work. It may have a silent/vibrate
    // mode or it may have distinct silent and vibrate modes.
    manager.setStreamVolume(STREAM, startVolume, 0);
    manager.setRingerMode(MODE);
    return MODES;
}
 
源代码3 项目: BigApp_Discuz_Android   文件: AppUtils.java
public static boolean autoChangeAlarm(Context context) {
    try {

        AudioManager audioManager = (AudioManager) context
                .getApplicationContext().getSystemService(
                        Context.AUDIO_SERVICE);
        // audioManager.setRingerMode(RINGER_MODE_NORMAL或者RINGER_MODE_SILENT或者RINGER_MODE_VIBRATE);
        // android.media.AudioManager.RINGER_MODE_NORMAL = 2;
        if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT) {
            audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
        } else if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE) {
            audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        }

        return true;
    } catch (Exception e) {
        return false;
    }
}
 
源代码4 项目: Easer   文件: RingerModeLoader.java
private static boolean amSetMode(AudioManager audioManager, RingerMode mode) {
    int am_mode;
    switch (mode) {
        case silent:
            am_mode = AudioManager.RINGER_MODE_SILENT;
            break;
        case vibrate:
            am_mode = AudioManager.RINGER_MODE_VIBRATE;
            break;
        case normal:
            am_mode = AudioManager.RINGER_MODE_NORMAL;
            break;
        default:
            Logger.w("Running on below Lollipop, but ringer mode %s found", mode);
            return false;
    }
    audioManager.setRingerMode(am_mode);
    if (audioManager.getRingerMode() == am_mode) {
        return true;
    } else {
        Logger.e("not properly set ringer mode :: expected <%s> got <%s>", mode, audioManager.getRingerMode());
        return false;
    }
}
 
源代码5 项目: SimpleSmsRemote   文件: AudioUtils.java
/**
 * Set volume as index.
 *
 * @param context     app context
 * @param volumeIndex volume as index (max. is depends on device)
 * @param type        audio type
 */
public static void SetVolumeIndex(Context context, int volumeIndex, AudioType type) {
    int ringerMode = -1;
    if (type == AudioType.RING && volumeIndex == VOLUME_INDEX_RING_VIBRATE) {
        volumeIndex = 0;
        ringerMode = AudioManager.RINGER_MODE_VIBRATE;
    } else if (type == AudioType.RING && volumeIndex == VOLUME_INDEX_RING_SILENT) {
        volumeIndex = 0;
        ringerMode = AudioManager.RINGER_MODE_SILENT;
    } else if (volumeIndex < 0) volumeIndex = 0;

    AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    audioManager.setStreamVolume(type.getStreamType(), volumeIndex, 0);
    if (ringerMode != -1)
        audioManager.setRingerMode(ringerMode);
}
 
源代码6 项目: Noyze   文件: RingerModeTransition.java
/**
 * @return An ordered list of the ringer modes, from
 * highest to lowest (volumes [1], [0], [0] again).
 */
public int[] apply(AudioManager manager) {
    // The algorithm here is to go from volume 0 (again) => 0 => 1,
    // and with each change, record the ringer modes.
    final int[] MODES = new int[3];
    MODES[0] = RINGER_MODE_NORMAL;
    final int STREAM = STREAM_RING;
    final int MODE = manager.getRingerMode();
    final int startVolume = manager.getStreamVolume(STREAM);
    // API quirk: volume must be decremented from 1 to get ringer mode change
    manager.setStreamVolume(STREAM, 1, FLAG_SHOW_UI);
    manager.setRingerMode(RINGER_MODE_NORMAL);
    manager.adjustStreamVolume(STREAM, ADJUST_LOWER, FLAG_SHOW_UI & FLAG_ALLOW_RINGER_MODES);
    manager.adjustStreamVolume(STREAM, ADJUST_LOWER, FLAG_SHOW_UI & FLAG_ALLOW_RINGER_MODES);
    MODES[2] = manager.getRingerMode();
    manager.adjustStreamVolume(STREAM, ADJUST_RAISE, FLAG_SHOW_UI & FLAG_ALLOW_RINGER_MODES);
    MODES[1] = manager.getRingerMode();
    // There are two possible ways the device may work. It may have a silent/vibrate
    // mode or it may have distinct silent and vibrate modes.
    manager.setStreamVolume(STREAM, startVolume, 0);
    manager.setRingerMode(MODE);
    return MODES;
}
 
源代码7 项目: DevUtils   文件: AudioManagerUtils.java
/**
 * 获取当前的铃声模式
 * <pre>
 *     有下述几种模式:
 *     RINGER_MODE_NORMAL( 普通 )
 *     RINGER_MODE_SILENT( 静音 )
 *     RINGER_MODE_VIBRATE( 震动 )
 * </pre>
 * @param ringerMode 铃声模式
 * @param setting    如果没授权, 是否跳转到设置页面
 * @return {@code true} success, {@code false} fail
 */
public static boolean setRingerMode(final int ringerMode, final boolean setting) {
    AudioManager audioManager = AppUtils.getAudioManager();
    if (audioManager != null) {
        try {
            if (isDoNotDisturb(setting)) {
                audioManager.setRingerMode(ringerMode);
                return true;
            }
        } catch (Exception e) {
            LogPrintUtils.eTag(TAG, e, "setRingerMode");
        }
    }
    return false;
}
 
源代码8 项目: MuslimMateAndroid   文件: SilentMoodAlarm.java
@Override
public void onReceive(Context context, Intent intent) {
    MindtrackLog.add("Silent Mood");
    AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    if (ConfigPreferences.getVibrationMode(context))
        mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
    Alarms.NormalAudio(context);
}
 
源代码9 项目: microbit   文件: PlayAudioPresenter.java
private void preparePhoneToPlayAudio(Context context) {
    audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    originalRingerMode = audioManager.getRingerMode();

    originalRingerMode = audioManager.getRingerMode();
    originalRingerVolume = audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION);

    if(originalRingerMode != AudioManager.RINGER_MODE_NORMAL) {
        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    }
    audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, audioManager.getStreamMaxVolume
            (AudioManager.STREAM_NOTIFICATION), 0);
}
 
源代码10 项目: iSCAU-Android   文件: Configuration.java
@Click
void btn_save(){
    int server = Integer.valueOf(param_server.getSelectedParam());
    boolean isFirstScreen = param_classTableAsFirstScreen.getYesOrNo();
    AppContext.server = server;
    config.eduServer().put(server);
    config.classTableAsFirstScreen().put(isFirstScreen);
    RingerMode[] modes = RingerMode.values();
    RingerMode duringMode = modes[param_ringer_mode_during_class.getWheel().getCurrentItem()];
    RingerMode afterMode = modes[param_ringer_mode_after_class.getWheel().getCurrentItem()];
    boolean needUpdateAlarm = false;
    if(RingerMode.isSet(config.duringClassRingerMode().get()) != RingerMode.isSet(duringMode.getValue())
            || RingerMode.isSet(config.afterClassRingerMode().get()) != RingerMode.isSet(afterMode.getValue())){
        needUpdateAlarm = true;
    }
    config.duringClassRingerMode().put(duringMode.getValue());
    config.afterClassRingerMode().put(afterMode.getValue());
    if(needUpdateAlarm){
        RingerMode.duringClassOn(getActivity(), duringMode, -1);
        RingerMode.afterClassOn(getActivity(), afterMode, 1);
    }
    if(RingerMode.isSet(duringMode.getValue()) || RingerMode.isSet(afterMode.getValue())){
        RingerMode.setDateChangedAlarm(getActivity());
    } else {
        RingerMode.cancelDateChangedAlarm(getActivity());
    }
    AudioManager audioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
    if(ClassUtil.isDuringClassNow(getActivity())){
        audioManager.setRingerMode(duringMode.getValue());
    } else {
        audioManager.setRingerMode(afterMode.getValue());
    }
    AppMsg.makeText(parentActivity(),R.string.tips_save_successfully,AppMsg.STYLE_INFO).show();
}
 
源代码11 项目: LibreTasks   文件: SettingsActionService.java
/**
 * set the phone to loud
 */
private void setPhoneLoud() {
  AudioManager audioManager =(AudioManager) getSystemService(Context.AUDIO_SERVICE);
  audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
  int ringstream = AudioManager.STREAM_RING;
  int ringmaxvolume = audioManager.getStreamMaxVolume(ringstream);
  audioManager.setStreamVolume(ringstream, ringmaxvolume, AudioManager.FLAG_SHOW_UI);
  ResultProcessor.process(this, intent, ResultProcessor.RESULT_SUCCESS,
      getString(R.string.phone_set_loud));
 }
 
源代码12 项目: LibreTasks   文件: SettingsActionService.java
/**
 * set the phone to silent
 */
private void setPhoneSilent() {
  AudioManager audioManager =(AudioManager) getSystemService(Context.AUDIO_SERVICE);
  audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
  ResultProcessor.process(this, intent, ResultProcessor.RESULT_SUCCESS,
      getString(R.string.phone_set_silent));
 }
 
源代码13 项目: prayer-times-android   文件: SilenterReceiver.java
@Override
public void onReceive(Context context, Intent intent) {
    if (PermissionUtils.get(context).pNotPolicy && intent.hasExtra("mode")) {
        AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        am.setRingerMode(intent.getIntExtra("mode", 0));
    }
}
 
源代码14 项目: prayer-times-android   文件: SilenterReceiver.java
@Override
public void onReceive(Context context, Intent intent) {
    if (PermissionUtils.get(context).pNotPolicy && intent.hasExtra("mode")) {
        AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        am.setRingerMode(intent.getIntExtra("mode", 0));
    }
}
 
源代码15 项目: beaconloc   文件: SilentOffAction.java
@Override
public String execute(Context context) {
    final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    int ringerMode = audioManager.getRingerMode();
    int old_mode = PreferencesUtil.getSilentModeProfile(context);
    if (ringerMode != AudioManager.RINGER_MODE_VIBRATE) {
        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    }
    return super.execute(context);
}
 
源代码16 项目: beaconloc   文件: SilentOnAction.java
@Override
public String execute(Context context) {
    final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL) {
        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
        mRingerMode = AudioManager.RINGER_MODE_NORMAL;
    } else if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE) {
        audioManager.setMode(AudioManager.RINGER_MODE_SILENT);
        mRingerMode = AudioManager.RINGER_MODE_VIBRATE;
    }
    PreferencesUtil.setSilentModeProfile(context, mRingerMode);
    audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    return super.execute(context);
}
 
源代码17 项目: MuslimMateAndroid   文件: RingingAlarm.java
@Override
public void onReceive(Context context, Intent intent) {
    MindtrackLog.add("Normal Mood");
    mAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
}
 
源代码18 项目: prayer-times-android   文件: SilenterReceiver.java
public static void silent(Context c, int mins) {
    if (!PermissionUtils.get(c).pNotPolicy && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

        androidx.core.app.NotificationCompat.Builder builder;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            builder = new androidx.core.app.NotificationCompat.Builder(c, NotificationUtils.getPlayingChannel(c));
        } else {
            builder = new NotificationCompat.Builder(c);
        }

        builder = builder.setContentTitle(c.getString(R.string.silenterNotificationTitle))
                .setContentText(c.getString(R.string.silenterNotificationInfo))
                .setContentIntent(PendingIntent.getActivity(c, 0, new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS), 0))
                .setSmallIcon(R.drawable.ic_abicon);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            builder.setChannelId(NotificationUtils.getAlarmChannel(c));
        } else {
            builder.setPriority(Notification.PRIORITY_DEFAULT);
        }

        NotificationManager nm = (NotificationManager) c.getSystemService(Context.NOTIFICATION_SERVICE);
        nm.notify("silenter", 557457, builder.build());
        return;
    }


    AudioManager aum = (AudioManager) c.getSystemService(Context.AUDIO_SERVICE);
    int ringermode = aum.getRingerMode();
    boolean modeVibrate = "vibrate".equals(Preferences.SILENTER_MODE.get());
    boolean isSilent = ringermode == AudioManager.RINGER_MODE_SILENT;
    boolean isVibrate = ringermode == AudioManager.RINGER_MODE_VIBRATE;
    if ((modeVibrate && !isVibrate && !isSilent) || (!modeVibrate && !isSilent)) {
        AlarmManager am = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE);

        Intent i = new Intent(c, SilenterReceiver.class);
        i.putExtra("mode", ringermode);

        PendingIntent service = PendingIntent.getBroadcast(c, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);

        am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000 * 60 * mins), service);


        aum.setRingerMode(modeVibrate ? AudioManager.RINGER_MODE_VIBRATE : AudioManager.RINGER_MODE_SILENT);
    }
}
 
public static void ringing(Context context) {
    if (-1 != undo) {
        AudioManager manager = (AudioManager) context.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
        manager.setRingerMode(undo);
    }
}
 
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
	acquireCpuWakelock();

	// If user doesn't select "course" in settings, then don't show the notification.
	if (!Memory.getBoolean(this, Constant.PREF_COURSE_VIBRATE, false)) {
		stopService();
		if (intent == null) {
			return START_STICKY;
		} else {
			return super.onStartCommand(intent, flags, startId);
		}
	}

	if (intent == null) {
		stopService();
		return START_STICKY;
	}

	Bundle bundle = intent.getExtras();
	if (bundle == null) {
		stopService();
		return START_STICKY;
	}

	Boolean isVibrate = bundle.getBoolean("mode", false);

	AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
	if (isVibrate) {
		Memory.setInt(this, Constant.PREF_COURSE_VIBRATE_USER_SETTING,
				audioManager.getRingerMode());
		audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
	} else {
		audioManager.setRingerMode(
				Memory.getInt(this, Constant.PREF_COURSE_VIBRATE_USER_SETTING,
						audioManager.getRingerMode()));
	}

	stopService();

	return super.onStartCommand(intent, flags, startId);
}