这个插件是属于设置的一部分,可以在
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. 是否显示这个部件
02 |
*
Provides control of power-related settings from a widget. |
04 |
public class SettingsAppWidgetProvider extends AppWidgetProvider
{ |
05 |
static final String
TAG = "SettingsAppWidgetProvider" ; |
07 |
static final ComponentName
THIS_APPWIDGET = |
08 |
new ComponentName( "com.android.settings" , |
09 |
"com.android.settings.widget.SettingsAppWidgetProvider" ); |
11 |
private static LocalBluetoothManager
sLocalBluetoothManager = null ; |
12 |
private static TelephonyManager
mTelephonyManager = null ; |
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 ; |
2. 点击之后的事件处理
02 |
*
Receives and processes a button pressed intent or state change. |
05 |
*
@param intent Indicates the pressed button. |
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) { |
23 |
} else if (buttonId
== BUTTON_GPS) { |
25 |
} else if (buttonId
== BUTTON_BLUETOOTH) { |
26 |
sBluetoothState.toggleState(context); |
32 |
} else if (TelephonyIntents.ACTION_MODEM_POWER_STATE_CHANGED.equals(intent.getAction()))
{ |
3. 重新载入图片
02 |
*
Load image for given widget and build {@link RemoteViews} for it. |
04 |
static RemoteViews
buildUpdate(Context context, int appWidgetId)
{ |
05 |
RemoteViews
views = new RemoteViews(context.getPackageName(), |
07 |
views.setOnClickPendingIntent(R.id.btn_wifi,
getLaunchPendingIntent(context, appWidgetId, |
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)); |
23 |
updateButtons(views,
context); |
4. 还有这个,全注释掉吧。
01 |
switch (getMobileState(context))
{ |
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); |
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); |
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); |