【Code-Snippet】系統設定
-
參考這裡的設定:LightUtils
-
系統應用,或者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(); } 複製程式碼
-
呼叫系統的 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"); 複製程式碼
-
跳轉系統設定頁面:
startActivity(new Intent(Settings.ACTION_DATE_SETTINGS));
4.音量
調節音量的大小,可以直接調節:
- 調節大小根據系統的幅度去,
- 直接調節大小,調節幅度自定義
- 先獲取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); } 複製程式碼