android開發之快速設置,一鍵wifi開閉,移動網絡開閉,電池設置,飛行模式,

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,以防報錯。下載地址:https://download.csdn.net/user/beiminglei。由於是從項目中扣下來的代碼,比較亂,如有興趣體驗比較完整的版本,可以試試我們的項目,https://play.google.com/store/apps/details?id=com.launcher.GTlauncher2&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5sYXVuY2hlci5HVGxhdW5jaGVyMiJd。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。