私はwifiを有効/無効にするために使用しようとしているウィジェットを持っているだけでなく、いくつかの追加情報を表示しています。 Wifiが有効/無効になっている間にトランジションの砂時計アイコンを表示したいので、android.net.wifi.WIFI_STATE_CHANGEDインテントを聞いています。Wifi放送が遅くなります
WifiManager wifiMan = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiMan.getConnectionInfo();
RemoteViews views = new RemoteViews("com.nickavv.cleanwidgets", R.layout.wifi_toggle_layout_large);
supState = wifiInfo.getSupplicantState();
wifiState = wifiMan.getWifiState();
if(wifiState == WifiManager.WIFI_STATE_ENABLED) {
//Show enabled image
} else if(wifiState == WifiManager.WIFI_STATE_DISABLED){
//Show disabled image
} else {
//Show hourglass
}
そして、ここでは、傍受クリックや無線LANの状態のための私のコードです:その意図は、私は、ウィジェットのにonUpdate関数を呼び出していて、その中で私が表示された画像を変更するためのコードブロックを持ってキャッチされる
変更:@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
if(wifiState != WifiManager.WIFI_STATE_ENABLING || wifiState != WifiManager.WIFI_STATE_DISABLING) {
switchToggle(context);
}
}
AppWidgetManager myAWM = AppWidgetManager.getInstance(context);
ComponentName cn = new ComponentName(context, WifiWidgetLarge.class);
onUpdate(context, myAWM, myAWM.getAppWidgetIds(cn));
}
これは単なるトグルスイッチである小さなウィジェット、上の細かい動作しますが、より大きなウィジェット上で、まったく同じコードが正しい結果を生成しません。無効にしている間は砂時計が表示されますが、有効にしている間は表示されません。デバッグログには最終的に受信されていることが示されているため、何も表示するには遅すぎるという意図があるようです。状態がWIFI_STATE_ENABLEDに変更される直前まで、WIFI_STATE_ENABLINGで受信していないだけです。
私のタブレットとルームメイトの電話では、ウィジェットはうまく機能します。しかし、私はそのパフォーマンスをより確かめるまで、リリースしたくないです。何か案は?
OSのどのバージョンは、あなたが言及したすべてのそれらのデバイス上にありますか? – louielouie
私の電話のジンジャーブレッドと私のルームメイトの。アイスクリームサンドイッチを私のタブレットに入れました。 – Nick
アイスクリームサンドイッチを稼働している他のルームメイトのAsus Transformer(期待どおりに動く)と私のルームメイトのAcer A500がHoneycombを走らせています。私の電話はどう違うのですか? – Nick