package org.zywx.wbpalmstar.base;
import android.app.IntentService;
import android.content.Intent;
import android.text.TextUtils;
import org.zywx.wbpalmstar.widgetone.dataservice.WDataManager;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
/**
* Created by ylt on 2016/12/21.
*/
public class DebugService extends IntentService {
public static final String KEY_TYPE_DEBUG = "type_debug";
public static final String KEY_LOG_DATA = "log_data";
public static final int TYPE_LOG = 1;
private static final int logServerPort = 30050; //AppCan IDE接收log 的端口号
private DatagramSocket mSocket;
/**
* Creates an IntentService. Invoked by your subclass's constructor.
*/
public DebugService() {
super("AppCanDebugService");
createUDP();
}
@Override
public void onDestroy() {
closeUDP();
super.onDestroy();
}
@Override
protected void onHandleIntent(Intent intent) {
int type = intent.getIntExtra(KEY_TYPE_DEBUG, 0);
if (type == TYPE_LOG) {
String log = intent.getStringExtra(KEY_LOG_DATA);
if (TextUtils.isEmpty(log)) {
return;
}
byte[] data = log.getBytes();
InetAddress inetAddress;
try {
if (mSocket == null) {
return;
}
inetAddress = InetAddress.getByName(WDataManager.sRootWgt.m_logServerIp);
DatagramPacket sendPacket = new DatagramPacket(data, data.length,
inetAddress, logServerPort);
mSocket.send(sendPacket);
} catch (IOException e) {
closeUDP();
e.printStackTrace();
} catch (SecurityException e) {
closeUDP();
e.printStackTrace();
}
} else {
}
}
private void createUDP() {
try {
if (mSocket == null) {
mSocket = new DatagramSocket();
mSocket.setBroadcast(true);
}
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
}
}
private void closeUDP() {
if (mSocket != null) {
mSocket.close();
mSocket = null;
}
}
}