Android底層對於無論是軟件系統還是硬件系統的控制能力都是非常好的,接口定義也十分明確,我們可以很方便的拿來做自己想要的控制,於是近期在項目中就有做個快速設置的功能,要求一鍵wifi開閉,移動網絡開閉,電池設置,飛行模式,一鍵打開應用(應用本來就是一鍵打開的哈),一鍵撥號……………………各種各種的功能,於是經過一個星期的奮戰,這個功能初步完成了編碼與測試,不慎完善,至少能用,呵呵,第一次寫這個,架構考慮的不全面,以後繼續改進,這篇文章呢就貼幾段功能實現的代碼,由於用到的接口太多,實在不方便寫博客了。我打了壓縮包,開放源碼,想要的童鞋可以去下載,純手打代碼,大家多多支持。
一:自動亮度的開啟與關閉
[java]
<span style="font-size:14px;">/**
* �?��亮度自動調節
*
* @param activity
*/
public void startAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
/**
* 停止自動亮度調節
*/
public void stopAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}</span>
二:飛行模式的開閉
[java
<span style="font-size:14px;">/**
* 打開關閉飛行模式
*/
public void OpenAirplane(Context context, ImageView childImageView) {
boolean isEnabled = Settings.System.getInt(
context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON,
0) == 1;
if (isEnabled) {
Settings.System.putInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0);
childImageView.setImageDrawable(getResources().getDrawable(
R.drawable.action_airplane_off_default));
} else if (!isEnabled) {
Settings.System.putInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 1);
childImageView.setImageDrawable(getResources().getDrawable(
R.drawable.action_airplane_default));
}
Intent i = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
i.putExtra("state", !isEnabled);
context.sendBroadcast(i);
}</span>
三:藍牙開閉
[java]
<span style="font-size:14px;">/**
* 打開關閉藍牙
*
*/
public void OpenorCloseBluetooth(Context context, ImageView childImageView) {
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (adapter.isEnabled()) {
adapter.disable();// 關閉藍牙
childImageView.setImageDrawable(getResources().getDrawable(
R.drawable.action_bluetooth_off_default));
Toast.makeText(QuickSettingActivity.this,
getString(R.string.close_bluetooth), Toast.LENGTH_SHORT)
.show();
} else {
adapter.enable();// 打開藍牙
childImageView.setImageDrawable(getResources().getDrawable(
R.drawable.action_bluetooth_default));
Toast.makeText(QuickSettingActivity.this,
getString(R.string.open_bluetooth), Toast.LENGTH_SHORT)
.show();
}
}
</span>
下面再貼一些要用到的權限
[html]
<span style="font-size:14px;"> <!-- 一鍵打開wifi -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 設置屏幕亮度 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 設置藍牙 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- 設置振動 -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.sec.android.app.factorymode.permission.KEYSTRING" />
<!-- 調用相機閃光燈 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 改變網絡 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- GPS -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /></span>
太多了,暫時搞這幾個,對大家有用的話,可以去下源碼。
開發過程中非常需要注意的是,隨著sdk版本的提升,有的系統設置接口有些改變,需要做些調整,還有這個與系統設置關系較為密切,拉取系統服務與數據的時候要及時try And catch,以防報錯。下載地址:http://download.csdn.net/user/beiminglei。由於是從項目中扣下來的代碼,比較亂,如有興趣體驗比較完整的版本,可以試試我們的項目,https://play.google.com/store/apps/details?id=com.launcher.GTlauncher2&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5sYXVuY2hlci5HVGxhdW5jaGVyMiJd。