功能完整,不符合设计工程
包:
import android.net.ConnectivityManager;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import java.lang.Short;
import java.util.Timer;
import java.util.TimerTask;
变量:
private static final int COLOR_BLUE = 0xff0000ff;
private short mIntervals;
private boolean interrputflag = true;
private boolean blinkflag = true;
private ConnectivityManager connectivityManager;
private NetworkInfo etherNetInfo;
private NetworkInfo wifiNetInfo;
private SoftBlink netstate;
线程:
public class SoftBlink extends Thread{
@Override
public void run() {
STBLights light = new STBLights();
while(blinkflag){
if (!interrputflag) {
light.turnOff();
break;
}
try {
Thread.sleep(mIntervals);
light.turnOff();
Thread.sleep(mIntervals);
light.setColor(COLOR_BLUE);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
线程启动(包含实现函数,自替换):
private void updateLedLights(String function, String event) {
systemFunctionality functionality = mSysFunc.get(function);
eventInformation eventInfo = null;
if (functionality != null) {
eventInfo = functionality.getEventInfo(event);
}
if ((functionality==null) || (eventInfo==null)) {
Slog.e(TAG, "LED configuration not available for - " + function + ":" + event);
return;
}
Vector <led> vLed = eventInfo.getLeds();
Enumeration eLed = vLed.elements();
while (eLed.hasMoreElements()){
int color = 0;
led l = (led) eLed.nextElement();
String state = l.getState();
short brightness = l.getBrightness();
short intervalstime = l.getIntervalsTime();
String ledType = l.getLedType();
Vector <String> vColor = l.getColors();
Iterator <String> itColor = vColor.iterator();
while (itColor.hasNext()) {
String c = itColor.next();
color |= mColorMap.get(c);
}
Slog.d(TAG, "functionality = " + function + " system event = " + event);
Slog.d(TAG, "led type = " + ledType + " state = " + state + " color = " + Integer.toHexString(color) + " brightness = " + brightness + " intervalstime = " + intervalstime );
ArrisLights light = mLedHardwareMap.get(ledType);
if (light != null) {
switch(state) {
case "on":
light.setColor(color);
break;
case "off":
light.turnOff();
break;
case "blink":
mIntervals = intervalstime;
netstate = new SoftBlink();
netstate.start();
break;
if (brightness >= 0) {
light.setBrightness(color, brightness);
}
}
}
}
注册:
public void onBootPhase(int phase) {
if (phase == PHASE_BOOT_COMPLETED) {
IntentFilter filter = new IntentFilter();
filter.addAction(connectivityManager.CONNECTIVITY_ACTION);
getContext().registerReceiver(mReceiver, filter);
}
}
广播:
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
etherNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!etherNetInfo.isConnected() && !wifiNetInfo.isConnected()){
blinkflag = true;
} else {
blinkflag = false;
}
if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true)) {
//开关灯实现updateLedLights("net", "disconnected");
}
}
}