如何在Android中启用和禁用数据连接时广播消息

时间:2015-03-17 08:18:33

标签: android

public class MainActivity extends ActionBarActivity {
    CheckinternetConnection internet;
    TextView textview;
    int tempint = 100;
    private static final long REPEAT_TIME = 1000 * 5;
    private PendingIntent pendingIntent;
    Button button1;
    Button button2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textview = (TextView) findViewById(R.id.textview);
        internet = new CheckinternetConnection();

        schedueService();



    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        IntentFilter filter = new IntentFilter();
        filter.addAction(WifiManager.NETWORK_IDS_CHANGED_ACTION);
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        registerReceiver(internet, filter);
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        unregisterReceiver(internet);
    }

    class CheckinternetConnection extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            if (Utils.isNetworkAvailable(MainActivity.this)) {
                textview.setVisibility(View.GONE);

                startService(new Intent(getBaseContext(), myserveclass.class));
                schedueService();
                //setMobileDataEnabled(getApplicationContext(), true);



            } else {
                textview.setVisibility(View.VISIBLE);
                textview.setText("It Seems Internet Connection is off");
                stopService(new Intent(getBaseContext(), myserveclass.class));
                CancelAlarm();

            }
        }
    }

这是我使用此代码的代码我能够在应用程序启动时显示连接和断开连接我希望当我从设置或设备顶部启用数据连接然后应该显示数据已连接,因为我将关闭数据连接然后它当我的应用程序有网络连接并且当没有连接工作时停止服务时我应该显示数据没有连接我想要启动服务建议我如何实现它。

1 个答案:

答案 0 :(得分:0)

尝试使用此接收器 另外,请确保您拥有Manifest

中的权限
class CheckinternetConnection extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager conn =  (ConnectivityManager)
              context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = conn.getActiveNetworkInfo();
        boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
        if (isConnected==true)
            textview.setVisibility(View.GONE);

            startService(new Intent(getBaseContext(), myserveclass.class));
            schedueService();
            //setMobileDataEnabled(getApplicationContext(), true);



        } else {
            textview.setVisibility(View.VISIBLE);
            textview.setText("It Seems Internet Connection is off");
            stopService(new Intent(getBaseContext(), myserveclass.class));
            CancelAlarm();

        }
    }
}