android实现电量控制,Android 删除/定制桌面电量控制插件

这个插件是属于设置的一部分,可以在

packages\apps\Settings\res\drawable-hdpi

这个文件夹里面查看,呵呵,有没有看到上面目录的斜杠方向,懂吧。

这里找到一个文件名为:“ic_appwidget_settings_mobile_off” 的PNG文件。

而相关的文件是:

vim packages/apps/Settings/src/com/android/settings/widget/SettingsAppWidgetProvider.java

代码要修改有几个部分,可以搜索“BUTTON_MOBILE”,进行修改。

1. 是否显示这个部件 /**

* Provides control of power-related settings from a widget.

*/

public class SettingsAppWidgetProvider extends AppWidgetProvider {

static final String TAG = "SettingsAppWidgetProvider";

static final ComponentName THIS_APPWIDGET =

new ComponentName("com.android.settings",

"com.android.settings.widget.SettingsAppWidgetProvider");

private static LocalBluetoothManager sLocalBluetoothManager = null;

private static TelephonyManager mTelephonyManager = null;

private static final int BUTTON_WIFI = 0;

private static final int BUTTON_BRIGHTNESS = 1;

private static final int BUTTON_SYNC = 2;

private static final int BUTTON_GPS = 3;

private static final int BUTTON_BLUETOOTH = 4;

// private static final int BUTTON_MOBILE = 5; /* 该产品没有通话功能。 */

2. 点击之后的事件处理 /**

* Receives and processes a button pressed intent or state change.

*

* @param context

* @param intent Indicates the pressed button.

*/

@Override

public void onReceive(Context context, Intent intent) {

super.onReceive(context, intent);

if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {

sWifiState.onActualStateChange(context, intent);

} else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {

sBluetoothState.onActualStateChange(context, intent);

} else if (intent.hasCategory(Intent.CATEGORY_ALTERNATIVE)) {

Uri data = intent.getData();

int buttonId = Integer.parseInt(data.getSchemeSpecificPart());

if (buttonId == BUTTON_WIFI) {

sWifiState.toggleState(context);

} else if (buttonId == BUTTON_BRIGHTNESS) {

toggleBrightness(context);

} else if (buttonId == BUTTON_SYNC) {

toggleSync(context);

} else if (buttonId == BUTTON_GPS) {

toggleGps(context);

} else if (buttonId == BUTTON_BLUETOOTH) {

sBluetoothState.toggleState(context);

}

/* 删去相应的事件处理代码。

else if (buttonId == BUTTON_MOBILE) {

toggleMobile(context);

}*/

} else if (TelephonyIntents.ACTION_MODEM_POWER_STATE_CHANGED.equals(intent.getAction())) {

} else {

// Don't fall-through to updating the widget. The Intent

// was something unrelated or that our super class took

// care of.

return;

}3. 重新载入图片

/**

* Load image for given widget and build {@link RemoteViews} for it.

*/

static RemoteViews buildUpdate(Context context, int appWidgetId) {

RemoteViews views = new RemoteViews(context.getPackageName(),

R.layout.widget);

views.setOnClickPendingIntent(R.id.btn_wifi, getLaunchPendingIntent(context, appWidgetId,

BUTTON_WIFI));

views.setOnClickPendingIntent(R.id.btn_brightness,

getLaunchPendingIntent(context,

appWidgetId, BUTTON_BRIGHTNESS));

views.setOnClickPendingIntent(R.id.btn_sync,

getLaunchPendingIntent(context,

appWidgetId, BUTTON_SYNC));

views.setOnClickPendingIntent(R.id.btn_bluetooth,

getLaunchPendingIntent(context,

appWidgetId, BUTTON_BLUETOOTH));

/* views.setOnClickPendingIntent(R.id.btn_mobile,

getLaunchPendingIntent(context,

appWidgetId, BUTTON_MOBILE)); */

updateButtons(views, context);

return views;

}

4. 还有这个,全注释掉吧。

switch (getMobileState(context)) {

case STATE_DISABLED:

views.setImageViewResource(R.id.img_mobile, R.drawable.ic_appwidget_settings_mobile_off);

views.setImageViewResource(R.id.ind_mobile, R.drawable.appwidget_settings_ind_off_c);

break;

case STATE_ENABLED:

views.setImageViewResource(R.id.img_mobile, R.drawable.ic_appwidget_settings_mobile_on);

views.setImageViewResource(R.id.ind_mobile, R.drawable.appwidget_settings_ind_on_c);

break;

case STATE_INTERMEDIATE:

views.setImageViewResource(R.id.img_mobile, R.drawable.ic_appwidget_settings_mobile_off);

views.setImageViewResource(R.id.ind_mobile, R.drawable.appwidget_settings_ind_mid_c);

break;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值