android 电量控制

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

1 packages\apps\Settings\res\drawable-hdpi

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

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

而相关的文件是:

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

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

1. 是否显示这个部件

01 /**
02  * Provides control of power-related settings from a widget.
03  */
04 public class SettingsAppWidgetProvider extends AppWidgetProvider {
05     static final String TAG = "SettingsAppWidgetProvider";
06  
07     static final ComponentName THIS_APPWIDGET =
08             new ComponentName("com.android.settings",
09                     "com.android.settings.widget.SettingsAppWidgetProvider");
10  
11     private static LocalBluetoothManager sLocalBluetoothManager = null;
12     private static TelephonyManager mTelephonyManager = null;
13  
14     private static final int BUTTON_WIFI = 0;
15     private static final int BUTTON_BRIGHTNESS = 1;
16     private static final int BUTTON_SYNC = 2;
17     private static final int BUTTON_GPS = 3;
18     private static final int BUTTON_BLUETOOTH = 4;
19 //  private static final int BUTTON_MOBILE = 5; /* 该产品没有通话功能。 */

2. 点击之后的事件处理

01 /**
02   * Receives and processes a button pressed intent or state change.
03   *
04   * @param context
05   * @param intent  Indicates the pressed button.
06   */
07  @Override
08  public void onReceive(Context context, Intent intent) {
09      super.onReceive(context, intent);
10      if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {
11          sWifiState.onActualStateChange(context, intent);
12      else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {
13          sBluetoothState.onActualStateChange(context, intent);
14      else if (intent.hasCategory(Intent.CATEGORY_ALTERNATIVE)) {
15          Uri data = intent.getData();
16          int buttonId = Integer.parseInt(data.getSchemeSpecificPart());
17          if (buttonId == BUTTON_WIFI) {
18              sWifiState.toggleState(context);
19          else if (buttonId == BUTTON_BRIGHTNESS) {
20              toggleBrightness(context);
21          else if (buttonId == BUTTON_SYNC) {
22              toggleSync(context);
23            else if (buttonId == BUTTON_GPS) {
24                toggleGps(context);
25          else if (buttonId == BUTTON_BLUETOOTH) {
26              sBluetoothState.toggleState(context);
27          }
28 /* 删去相应的事件处理代码。
29    else if (buttonId == BUTTON_MOBILE) {
30              toggleMobile(context);
31          }*/
32                else if(TelephonyIntents.ACTION_MODEM_POWER_STATE_CHANGED.equals(intent.getAction())) {
33      else {
34          // Don't fall-through to updating the widget.  The Intent
35          // was something unrelated or that our super class took
36          // care of.
37          return;
38      }

3. 重新载入图片
01 /**
02   * Load image for given widget and build {@link RemoteViews} for it.
03   */
04  static RemoteViews buildUpdate(Context context, int appWidgetId) {
05      RemoteViews views = new RemoteViews(context.getPackageName(),
06              R.layout.widget);
07      views.setOnClickPendingIntent(R.id.btn_wifi, getLaunchPendingIntent(context, appWidgetId,
08              BUTTON_WIFI));
09      views.setOnClickPendingIntent(R.id.btn_brightness,
10              getLaunchPendingIntent(context,
11                      appWidgetId, BUTTON_BRIGHTNESS));
12      views.setOnClickPendingIntent(R.id.btn_sync,
13              getLaunchPendingIntent(context,
14                      appWidgetId, BUTTON_SYNC));
15      views.setOnClickPendingIntent(R.id.btn_bluetooth,
16              getLaunchPendingIntent(context,
17                      appWidgetId, BUTTON_BLUETOOTH));
18  
19 /*   views.setOnClickPendingIntent(R.id.btn_mobile,
20              getLaunchPendingIntent(context,
21                      appWidgetId, BUTTON_MOBILE)); */
22  
23      updateButtons(views, context);
24      return views;
25  }

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

01 switch (getMobileState(context)) {
02     case STATE_DISABLED:
03         views.setImageViewResource(R.id.img_mobile, R.drawable.ic_appwidget_settings_mobile_off);
04         views.setImageViewResource(R.id.ind_mobile, R.drawable.appwidget_settings_ind_off_c);
05         break;
06     case STATE_ENABLED:
07         views.setImageViewResource(R.id.img_mobile, R.drawable.ic_appwidget_settings_mobile_on);
08         views.setImageViewResource(R.id.ind_mobile, R.drawable.appwidget_settings_ind_on_c);
09         break;
10     case STATE_INTERMEDIATE:
11         views.setImageViewResource(R.id.img_mobile, R.drawable.ic_appwidget_settings_mobile_off);
12         views.setImageViewResource(R.id.ind_mobile, R.drawable.appwidget_settings_ind_mid_c);
13         break;
14 }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值