80,472
社区成员




package com.example.socketdemo;
import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Looper;
import android.os.Message;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
import java.util.Scanner;
import java.util.logging.Handler;
public class MainActivity extends Activity {
TextView textmsg;
Button btnsend;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textmsg=(TextView)this.findViewById(R.id.textMessage);
btnsend=(Button)this.findViewById(R.id.buttonSend);
btnsend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(runchannel).start();
}
});
}
Runnable runchannel = new Runnable(){
@Override
public void run() {
while (true)
{
try {
if(HaveInternet())
{
Log.i("MainActivity", "处在联网状态");
}
else
{
Log.i("MainActivity", "没网了");
}
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
public boolean HaveInternet()
{
ConnectivityManager manger = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manger.getActiveNetworkInfo();
return (info!=null && info.isConnected());
}
}
BroadcastReceiver connectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
Log.i("Live", "断网了");
onChannelClose();
try {
nclient.ChannelClose();
} catch (IOException e) {
e.printStackTrace();
}
channelHandler.removeCallbacks(runchannel);
}else {
Log.i("Live", "来网了");
}
}
};