1、Configuration類專門用於描述手機設備上的配置信息,這些配置信息既包括用戶特定的也包括系統的動態設備配置。
程序可調用Activity的如下方法來獲取 系統的Configuration對象:
Configuration cfg=getResources().getConfiguration();
String screen = cfg.orientation == Configuration.ORIENTATION_LANDSCAPE? "橫向屏幕": "豎向屏幕";
String mncCode = cfg.mnc + "";//獲取系統屏幕的方向,ORIENTATION_LANDSCAPE 是橫向,ORIENTATION_PORTRAIT是豎向屏幕,ORIENTATION_SQUARE是方形屏幕;
String naviName = cfg.orientation == Configuration.NAVIGATION_NONAV ? "沒有方向控制" :cfg.orientation == Configuration.NAVIGATION_WHEEL ? "滾輪控制方向" :cfg.orientation
== Configuration.NAVIGATION_DPAD
? "方向鍵控制方向" : "軌跡球控制方向";//判斷系統上方向導航設備的類型。NAVIGATION_NONAV無導航,NAVIGATION_DPAD(DPAD導航),NAVIGATION_TRACKBALL軌跡球導航,NAVIGATION_WHEEL滾輪導航;
String touchName = cfg.touchscreen == Configuration.TOUCHSCREEN_NOTOUCH? "無觸摸屏" :cfg.touchscreen == Configuration.TOUCHSCREEN_STYLUS? "觸摸筆式觸摸屏" : "接受手指的觸摸屏";//獲取系統觸摸屏蔽的觸摸方式,TOUCHSCREEN_NOTOUCH 無觸摸屏TOUCHSCREEN_STYLUS觸摸筆式觸摸屏,TOUCHSCREEN_FINGERR接受手指的觸摸屏;
String mncCode = cfg.mnc+" ";獲取移動信號的網絡碼
String mncCode = cfg.mcc+" "獲取移動信號的國家碼;
2、如果程序需要監聽系統設置的更改,則可以考慮重寫Activity的onConfigurationChanged方法,該方法是一個基於回調的事件處理方法:當系統設置發生 更改時,該方法會被自動觸發;
接下來以一個簡單程序說明:
界面很簡單一個普通的按鈕來更改屏幕方向,so 界面文件不寫了;
爲按鈕綁定監聽事件:
- bn.setOnClickListener(new OnClickListener()
- {
- @Override
- public void onClick(View source)
- {
- Configuration config = getResources().getConfiguration();
- //如果當前是橫屏
- if (config.orientation
- == Configuration.ORIENTATION_LANDSCAPE)
- {
- //設爲豎屏
- ChangeCfg.this.setRequestedOrientation(
- ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- }
- //如果當前是豎屏
- if (config.orientation
- == Configuration.ORIENTATION_PORTRAIT)
- {
- //設爲橫屏
- ChangeCfg.this.setRequestedOrientation(
- ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE );
- }
- }
- });
重寫Activity的onConfigurationChanged方法:public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
String screen = newConfig.orientation ==
Configuration.ORIENTATION_LANDSCAPE ? "橫向屏幕": "豎向屏幕";
Toast.makeText(this, "系統的屏幕方向發生改變"
+ "\n修改後的屏幕方向爲:" + screen
, Toast.LENGTH_LONG)
.show();
}
由於程序需要動態地更改系統設置,因此需要在androidManifest.xml文件中授予誚程序更改系統設置的權限,並設置Activity運行動態修改的系統設置是屏幕方向;
<!-- 授予應用程序修改系統設置的權限 -->
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />