android 手电筒开关,Android 系统开关,wifi、手电筒等的开关

wifi是否开启

wifi开关

蓝牙是否开启

蓝牙开关

是否开启自动旋转

屏幕旋转开关

是否开启同步

同步开关

屏幕亮度切换

设置屏幕亮度

是否开启飞行模式

飞行模式开关

是否开启数据连接

数据连接开关

情景模式切换

是否开启gps

gps开关

锁屏

重启

关机

是否开启了闪光灯

闪光灯开关

闪光灯开关2

跳转到系统设置

跳转到系统app管理

跳转到系统显示设置

跳转到系统声音设置

跳转到系统日期设置

跳转到系统位置设置

跳转到系统同步设置

跳转到系统输入设置

调大媒体音量

package android.widget;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import android.bluetooth.BluetoothAdapter;

import android.content.ContentResolver;

import android.content.Context;

import android.content.Intent;

import android.hardware.Camera;

import android.hardware.Camera.Parameters;

import android.location.LocationManager;

import android.media.AudioManager;

import android.net.ConnectivityManager;

import android.net.Uri;

import android.net.wifi.WifiManager;

import android.os.PowerManager;

import android.os.SystemClock;

import android.provider.Settings;

import android.provider.Settings.Secure;

import android.provider.Settings.SettingNotFoundException;

import android.widget.Toast;

public class SystemSwitchUtils {

private Context context;

private WifiManager mWifiManager;

private BluetoothAdapter mBluetoothAdapter;

private ConnectivityManager connManager;

private PowerManager mPowerManager;

private AudioManager mAudioManager;

private static Camera camera;

private final int LIGHT_NORMAL = 64;

private final int LIGHT_50_PERCENT = 127;

private final int LIGHT_75_PERCENT = 191;

private final int LIGHT_100_PERCENT = 255;

private final int LIGHT_AUTO = 0;

private final int LIGHT_ERR = -1;

private static SystemSwitchUtils util;

public static void getInstance(Context context){

if (util==null) {

util=new SystemSwitchUtils(context);

}

}

private SystemSwitchUtils(Context context) {

super();

this.context = context;

}

/**

* wifi是否开启

* @return

*/

public boolean isWifiOn() {

if (mWifiManager == null) {

mWifiManager = (WifiManager) context

.getSystemService(Context.WIFI_SERVICE);

}

return mWifiManager.isWifiEnabled();

}

/**

* wifi开关

*/

public void wifiUtils() {

if (isWifiOn()) {

// 关闭Wifi,按钮显示开启

mWifiManager.setWifiEnabled(false);

Toast.makeText(context, "关闭wifi", Toast.LENGTH_SHORT).show();

} else {

// 开启Wifi,按钮显示关闭

mWifiManager.setWifiEnabled(true);

Toast.makeText(context, "开启wifi", Toast.LENGTH_SHORT).show();

}

}

/**

* 蓝牙是否开启

* @return

*/

public boolean isBlueToothOn() {

if (mBluetoothAdapter == null) {

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

}

switch (mBluetoothAdapter.getState()) {

case BluetoothAdapter.STATE_ON:

return true;

case BluetoothAdapter.STATE_TURNING_ON:

return true;

case BluetoothAdapter.STATE_OFF:

return false;

case BluetoothAdapter.STATE_TURNING_OFF:

return false;

}

return false;

}

/**

* 蓝牙开关

*/

public void bluetoothUtils() {

if (isBlueToothOn()) {

mBluetoothAdapter.disable();

Toast.makeText(context, "关闭蓝牙", Toast.LENGTH_SHORT).show();

} else {

mBluetoothAdapter.enable();

Toast.makeText(context, "开启蓝牙", Toast.LENGTH_SHORT).show();

}

}

/**

* 是否开启自动旋转

* @return

*/

public boolean isRotationOn() {

int status = 0;

try {

status = android.provider.Settings.System.getInt(

context.getContentResolver(),

android.provider.Settings.System.ACCELEROMETER_ROTATION);

} catch (SettingNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 设置status的值改变屏幕旋转设置

if (status == 0) {

return false;

} else {

return true;

}

}

/**

* 屏幕旋转开关

*/

public void rotationUtils() {

int status = 0;

Uri uri = android.provider.Settings.System

.getUriFor("accelerometer_rotation");

// 设置status的值改变屏幕旋转设置

if (!isRotationOn()) {

status = 1;

Toast.makeText(context, "开启旋转", Toast.LENGTH_SHORT).show();

} else if (status == 1) {

status = 0;

Toast.makeText(context, "关闭旋转", Toast.LENGTH_SHORT).show();

}

android.provider.Settings.System.putInt(context.getContentResolver(),

"accelerometer_rotation", status);

// 通知改变

context.getContentResolver().notifyChange(uri, null);

}

/**

* 是否开启同步

* @return

*/

@SuppressWarnings("deprecation")

public boolean isSyncSwitchOn() {

if (connManager == null) {

connManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

}

return connManager.getBackgroundDataSetting()

&& ContentResolver.getMasterSyncAutomatically();

}

/**

* 同步开关

*/

public void syncSwitchUtils() {

if (isSyncSwitchOn()) {

Toast.makeText(context, "关闭同步", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(context, "开启同步", Toast.LENGTH_SHORT).show();

}

ContentResolver.setMasterSyncAutomatically(!isSyncSwitchOn());

}

/**

* 屏幕亮度切换

*/

public void brightnessSwitchUtils() {

int light = 0;

ContentResolver cr = context.getContentResolver();

try {

boolean auto = Settings.System.getInt(cr,

Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;

if (!auto) {

light = android.provider.Settings.System.getInt(cr,

Settings.System.SCREEN_BRIGHTNESS, -1);

if (light > 0 && light <= LIGHT_NORMAL) {

light = LIGHT_NORMAL;

} else if (light > LIGHT_NORMAL && light <= LIGHT_50_PERCENT) {

light = LIGHT_50_PERCENT;

} else if (light > LIGHT_50_PERCENT

&& light <= LIGHT_75_PERCENT) {

light = LIGHT_75_PERCENT;

} else {

light = LIGHT_100_PERCENT;

}

} else {

light = LIGHT_AUTO;

}

switch (light) {

case LIGHT_NORMAL:

light = LIGHT_50_PERCENT - 1;

Toast.makeText(context, "正常亮度", Toast.LENGTH_SHORT).show();

break;

case LIGHT_50_PERCENT:

light = LIGHT_75_PERCENT - 1;

Toast.makeText(context, "较高亮度", Toast.LENGTH_SHORT).show();

break;

case LIGHT_75_PERCENT:

light = LIGHT_100_PERCENT - 1;

Toast.makeText(context, "高亮度", Toast.LENGTH_SHORT).show();

break;

case LIGHT_100_PERCENT:

light = LIGHT_NORMAL - 1;

Settings.System.putInt(cr,

Settings.System.SCREEN_BRIGHTNESS_MODE,

Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);

Toast.makeText(context, "自动亮度", Toast.LENGTH_SHORT).show();

break;

case LIGHT_AUTO:

light = LIGHT_NORMAL - 1;

Settings.System.putInt(cr,

Settings.System.SCREEN_BRIGHTNESS_MODE,

Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);

Toast.makeText(context, "低亮度", Toast.LENGTH_SHORT).show();

break;

case LIGHT_ERR:

light = LIGHT_NORMAL - 1;

break;

}

setLight(light);

android.provider.Settings.System.putInt(cr,

Settings.System.SCREEN_BRIGHTNESS, light);

} catch (SettingNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 设置屏幕亮度

* @param light

*/

private void setLight(int light) {

try {

if (mPowerManager == null) {

mPowerManager = (PowerManager) context

.getSystemService(Context.POWER_SERVICE);

}

Class> pmClass = Class

.forName(mPowerManager.getClass().getName());

// 得到PowerManager类中的成员mService(mService为PowerManagerService类型)

Field field = pmClass.getDeclaredField("mService");

field.setAccessible(true);

// 实例化mService

Object iPM = field.get(mPowerManager);

// 得到PowerManagerService对应的Class对象

Class> iPMClass = Class.forName(iPM.getClass().getName());

/*

* 得到PowerManagerService的函数setBacklightBrightness对应的Method对象,

* PowerManager的函数setBacklightBrightness实现在PowerManagerService中

*/

Method method = iPMClass.getDeclaredMethod(

"setBacklightBrightness", int.class);

method.setAccessible(true);

// 调用实现PowerManagerService的setBacklightBrightness

method.invoke(iPM, light);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 是否开启飞行模式

* @return

*/

@SuppressWarnings("deprecation")

public boolean isAirplaneModeOn() {

return Settings.System.getInt(context.getContentResolver(),

Settings.System.AIRPLANE_MODE_ON, 0) != 0;

}

/**

* 飞行模式开关

*/

@SuppressWarnings("deprecation")

public void airplaneModeSwitchUtils() {

boolean enable = isAirplaneModeOn();

if (enable) {

Toast.makeText(context, "关闭飞行模式", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(context, "开启飞行模式", Toast.LENGTH_SHORT).show();

}

Settings.System.putInt(context.getContentResolver(),

Settings.System.AIRPLANE_MODE_ON, !enable ? 1 : 0);

Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);

intent.putExtra("state", !enable);

context.sendBroadcast(intent);

}

/**

* 是否开启数据连接

* @return

*/

@SuppressWarnings({ "unchecked", "rawtypes" })

public boolean isMobileDataOn() {

Boolean isOpen = false;

if (connManager == null) {

connManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

}

try {

String methodName = "getMobileDataEnabled";

Class cmClass = connManager.getClass();

Method method = cmClass.getMethod(methodName, null);

isOpen = (Boolean) method.invoke(connManager, null);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return isOpen;

}

/**

* 数据连接开关

*/

@SuppressWarnings({ "unused", "unchecked" })

public void MobileDataSwitchUtils() {

if (connManager == null) {

connManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

}

try {

String methodName = "getMobileDataEnabled";

Class cmClass = connManager.getClass();

// Boolean isOpen = null;

Method method = cmClass.getMethod(methodName, null);

// isOpen = (Boolean) method.invoke(connManager, null);

Class> conMgrClass = Class.forName(connManager.getClass()

.getName());

// 得到ConnectivityManager类的成员变量mService(ConnectivityService类型)

Field iConMgrField = conMgrClass.getDeclaredField("mService");

iConMgrField.setAccessible(true);

// mService成员初始化

Object iConMgr = iConMgrField.get(connManager);

// 得到mService对应的Class对象

Class> iConMgrClass = Class.forName(iConMgr.getClass().getName());

/*

* 得到mService的setMobileDataEnabled(该方法在android源码的ConnectivityService类中实现

* ), 该方法的参数为布尔型,所以第二个参数为Boolean.TYPE

*/

Method setMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod(

"setMobileDataEnabled", Boolean.TYPE);

setMobileDataEnabledMethod.setAccessible(true);

/*

* 调用ConnectivityManager的setMobileDataEnabled方法(方法是隐藏的),

* 实际上该方法的实现是在ConnectivityService(系统服务实现类)中的

*/

if (isMobileDataOn()) {

Toast.makeText(context, "关闭数据连接", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(context, "开启数据连接", Toast.LENGTH_SHORT).show();

}

setMobileDataEnabledMethod.invoke(iConMgr, !isMobileDataOn());

} catch (Exception e) {

// TODO: handle exception

}

}

/**

* 情景模式切换

*/

public void silentSwitchUtils() {

if (mAudioManager == null) {

mAudioManager = (AudioManager) context

.getSystemService(Context.AUDIO_SERVICE);

}

int ringerMode = mAudioManager.getRingerMode();

switch (ringerMode) {

case AudioManager.RINGER_MODE_SILENT:

mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

Toast.makeText(context, "震动模式", Toast.LENGTH_SHORT).show();

break;

case AudioManager.RINGER_MODE_NORMAL:

mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

Toast.makeText(context, "静音模式", Toast.LENGTH_SHORT).show();

break;

case AudioManager.RINGER_MODE_VIBRATE:

mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

Toast.makeText(context, "正常模式", Toast.LENGTH_SHORT).show();

break;

}

}

/**

* 是否开启gps

* @return

*/

public boolean isGpsSwitchOn() {

return Secure.isLocationProviderEnabled(context.getContentResolver(),

LocationManager.GPS_PROVIDER);

}

/**

* gps开关

*/

public void GpsSwitchUtils() {

Secure.setLocationProviderEnabled(context.getContentResolver(),

LocationManager.GPS_PROVIDER, !isGpsSwitchOn());

}

/**

* 锁屏

*/

public void lockScreenSwitchUtils() {

if (mPowerManager == null) {

mPowerManager = (PowerManager) context

.getSystemService(Context.POWER_SERVICE);

}

mPowerManager.goToSleep(SystemClock.uptimeMillis());

}

/**

* 重启

*/

public void rebootUtils() {

if (mPowerManager == null) {

mPowerManager = (PowerManager) context

.getSystemService(Context.POWER_SERVICE);

}

mPowerManager.reboot(null);

}

/**

* 关机

*/

public void shutDownSwitchUtils() {

Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");

intent.putExtra("android.intent.extra.KEY_CONFIRM", false);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

// 弹出系统内置的对话框,选择确定关机或取消关机

context.startActivity(intent);

}

/**

* 是否开启了闪光灯

* @return

*/

public boolean isFlashlightOn() {

if (camera == null) {

camera = Camera.open();

}

Parameters parameters = camera.getParameters();

String flashMode = parameters.getFlashMode();

if (flashMode.equals(Parameters.FLASH_MODE_TORCH)) {

return true;

} else {

return false;

}

}

/**

* 闪光灯开关

*/

public void flashlightUtils() {

if (camera == null) {

camera = Camera.open();

}

Parameters parameters = camera.getParameters();

// String flashMode = parameters.getFlashMode();

if (isFlashlightOn()) {

parameters.setFlashMode(Parameters.FLASH_MODE_OFF);// 关闭

camera.setParameters(parameters);

camera.release();

camera = null;

Toast.makeText(context, "关闭手电筒", Toast.LENGTH_SHORT).show();

} else {

parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);// 开启

camera.setParameters(parameters);

Toast.makeText(context, "开启手电筒", Toast.LENGTH_SHORT).show();

}

}

/**

* 闪光灯开关2

*/

public void flashUtils() {

Camera camera = Camera.open();

Camera.Parameters parameters = camera.getParameters();

String flashMode = parameters.getFlashMode();

if (flashMode.equals(Camera.Parameters.FLASH_MODE_TORCH)) {

camera.stopPreview();

camera.release();

camera = null;

} else {

parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);

camera.setParameters(parameters);

camera.autoFocus(new Camera.AutoFocusCallback() {

public void onAutoFocus(boolean success, Camera camera) {

}

});

camera.startPreview();

}

}

/**

* 跳转到系统设置

*/

public void systemSetUtils() {

Intent intent = new Intent(Settings.ACTION_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 跳转到系统app管理

*/

public void systemAppsUtils() {

Intent intent = new Intent(Settings.ACTION_APPLICATION_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 跳转到系统显示设置

*/

public void systemDisplayUtils() {

Intent intent = new Intent(Settings.ACTION_DISPLAY_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 跳转到系统声音设置

*/

public void systemSoundUtils() {

Intent intent = new Intent(Settings.ACTION_SOUND_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 跳转到系统日期设置

*/

public void systemDateUtils() {

Intent intent = new Intent(Settings.ACTION_DATE_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 跳转到系统位置设置

*/

public void systemLocationUtils() {

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 跳转到系统同步设置

*/

public void systemSyncUtils() {

Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 跳转到系统输入设置

*/

public void systemInputUtils() {

Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

/**

* 调大媒体音量

*/

public void setMusicAudio() {

if (mAudioManager == null) {

mAudioManager = (AudioManager) context

.getSystemService(Context.AUDIO_SERVICE);

}

// int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM

// );

// int current = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM

// );

mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_RAISE, AudioManager.FX_FOCUS_NAVIGATION_UP);

}

}

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值