# 安卓广播

发送广播

  Intent mIntent = new Intent();
  mIntent.setAction("com.custom.gpio174.check");
  mIntent.putExtra("flag","1");
  wcontext.sendBroadcast(mIntent);
1
2
3
4

接收广播

  public void initReceiver() {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.upgrade");
        intentFilter.addAction("android.net.ethernet.ETHERNET_STATE_CHANGED");
        intentFilter.addAction("android.net.ethernet.STATE_CHANGE");
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        intentFilter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
        intentFilter.addAction("android.net.wifi.STATE_CHANGE");
        intentFilter.addAction("android.intent.action.SCREEN_ON"); // 亮屏
        intentFilter.addAction("android.intent.action.SCREEN_OFF"); // 息屏
        intentFilter.addAction("com.joyar.pirin"); // 检测到人来
        intentFilter.addAction("com.joyar.pirout"); // 检测到人离开
        intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        registerReceiver(netReceiver, intentFilter);
    }
    BroadcastReceiver netReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.v("kkk",""+intent.getAction());
            // 检测到人来
            if(intent.getAction()=="com.joyar.pirin"){
                webView.loadUrl("javascript:joyarPirin()");
                return;
            }
            // 检测到人离开
            if(intent.getAction()=="com.joyar.pirout"){
                webView.loadUrl("javascript:joyarPirout()");
                return;
            }
            /*检测到息屏了*/
            if(intent.getAction()=="android.intent.action.SCREEN_OFF"){
                webView.loadUrl("javascript:InterestRatesScreen()");
                return;
            }

            String action = intent.getStringExtra("versions");

                ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(
                        Context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
                if (networkInfo != null && networkInfo.isAvailable()) {
                    int type2 = networkInfo.getType();
                    String typeName = networkInfo.getTypeName();
                    webView.loadUrl("javascript:netReceiver("+type2+")");
                    switch (type2) {
                        case 0://移动 网络    2G 3G 4G 都是一样的 实测 mix2s 联通卡
                            Log.d("Feeee", "有网络");

                            break;
                        case 1: //wifi网络

                            Log.d("Feeee", "wifi");
                            break;

                        case 9:  //网线连接
                            Log.d("Feeee", "有网络");
                            break;
                    }
                } else {// 无网络
                    webView.loadUrl("javascript:netReceiver(-1)");
                    Log.d("Feeee", "无网络");
                }

        }
    };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65