【Code-Snippet】系统设置

1. 亮度

  1. 参考这里的设置: LightUtils

  2. 系统应用,或者Root应用参考这个:

    权限:<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

    代码

    Settings.System.putInt(MainActivity.this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS,12); 
    //设置亮度,数值为 0-255
    try {
        int b = Settings.System.getInt(MainActivity.this.getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS);  //读取亮度的值。
        Log.e("===","light:"+b);
    } catch (Settings.SettingNotFoundException e) {
        e.printStackTrace();
    }
    复制代码
  3. 调用系统的 Activity

    startActivity(new Intent(Settings.ACTION_DISPLAY_SETTINGS));

2. 自动锁屏时间

系统应用,或者Root应用参考这个:

权限:<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

/**
 * 获得锁屏时间  毫秒
 */
private int getScreenOffTime(){
    int screenOffTime=0;
    try{
        screenOffTime = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
    }
    catch (Exception localException){
    }
    return screenOffTime;
}
/**
 * 设置背光时间  毫秒
 *      //  2147483647  为无限
 */
private void setScreenOffTime(int paramInt){
    try{
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, paramInt);
    }catch (Exception localException){
        localException.printStackTrace();
    }
}
复制代码

3.时间与时区

  • 系统权限,root应用,设置时间:

    <uses-permission android:name="android.permission.SET_TIME"/>

    boolean isSuc = SystemClock.setCurrentTimeMillis(curMs);//需要Root权限

  • 设置时区,权限:普通应用层权限

    <uses-permission android:name="android.permission.SET_TIME_ZONE" />

    AlarmManager mAlarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    mAlarmManager.setTimeZone("Asia/Baku");              
    复制代码

    android---世界时区列表

  • 跳转系统设置页面:

    startActivity(new Intent(Settings.ACTION_DATE_SETTINGS));

4.音量

调节音量的大小,可以直接调节:

  1. 调节大小根据系统的幅度去,
  2. 直接调节大小,调节幅度自定义
  • 先获取AudioManager:
//音量控制,初始化定义  
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);  
//最大音量  
int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);  
//当前音量  
int currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);  
复制代码
  • 调节,渐进式,即像手动按音量键一样,一步一步增加或减少

public void adjustStreamVolume (int streamType, int direction, int flags)

参数说明:

int streamType	需要调整的音量类型
	(以下常量定义于AudioManager类中)
	STREAM_ALARM 警报
	STREAM_MUSIC 音乐回放即媒体音量
	STREAM_NOTIFICATION 窗口顶部状态栏Notification,
	STREAM_RING 铃声
	STREAM_SYSTEM 系统
	STREAM_VOICE_CALL 通话
	STREAM_DTMF 双音多频,不是很明白什么东西
	
int direction	调整的方向,加或者减。
	(以下常量定义于AudioManager类中)
	ADJUST_LOWER 降低音量
	ADJUST_RAISE 升高音量
	ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量
	
int flags	附加的一些参数
	参数的说明参考API文档:http://www.android-doc.com/reference/android/media/AudioManager.html
	
	FLAG_PLAY_SOUND 调整音量时播放声音
	FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的那个
	0表示什么也没有	
复制代码
例子:
mAudioManager.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE,
    AudioManager.FLAG_SHOW_UI);
复制代码
  • 直接设置音量值

public void setStreamVolume (int streamType, int index, int flags)

参数说明: 第一个,第三个和上面的一样

第二个参数:
	int index: 把音量调整到index值。
	
这里,可以根据获取的最大音量去自己设置调整的幅度。
复制代码
例子:
	这里是直接调整到最大的音量。
	am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
	    AudioManager.FLAG_PLAY_SOUND);
复制代码
  • 音量按键的监听:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        tv.setText("-----------------"+count);
        count--;
        return true;
    case KeyEvent.KEYCODE_VOLUME_UP:
        tv.setText("++++++++++++++++"+ count);
        count++;
        return true;
    case KeyEvent.KEYCODE_VOLUME_MUTE:
        tv.setText("MUTE");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
复制代码

5. Wifi设置

WifiHelper

Android Wifi控制方法总结

  • 不要试图监听连接WIFI的成功与否回调,不可能。虽然会有一个wifi连接失败的监听,但是不会告诉你,是哪一个wifi连接失败。

猜你喜欢

转载自juejin.im/post/5c94468bf265da60ee12dfd2