Xilent
Fortgeschrittenes Mitglied
- 89
Hallo,
habe irgendwie ein Problem mit meinem MulticastReceiver in meiner Android App.
An sich funktioniert der super und macht genau das was er soll, allerdings meldet er sich garnicht mehr, sobald das Telefon gesperrt wurde. Wenn der Display wieder an ist dann geht er wieder.
Hier der wichtige Auszug aus meiner Klasse:
Das interessante daran ist, dass er nicht mal eine Fehlermeldung gibt. Als wäre der Service eingefroren und danach wieder aktiv.
Wisst ihr, was es mit dem Problem auf sich hat?
Gruß
xilent
habe irgendwie ein Problem mit meinem MulticastReceiver in meiner Android App.
An sich funktioniert der super und macht genau das was er soll, allerdings meldet er sich garnicht mehr, sobald das Telefon gesperrt wurde. Wenn der Display wieder an ist dann geht er wieder.
Hier der wichtige Auszug aus meiner Klasse:
Code:
try
{
ia = InetAddress.getByName(ip);
s = new MulticastSocket(port);
s.joinGroup(ia);
}
catch(Exception e)
{
Log.v("Socket Error: ",e.getMessage());
}
//Thread multiCastReceive = new Thread(ReceiveMulticast);
//multiCastReceive.start();
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if (wifi != null) {
wifilock = wifi.createWifiLock(WifiManager.WIFI_MODE_FULL,"wifiLock");
wifilock.setReferenceCounted(true);
wifilock.acquire();
lock = wifi.createMulticastLock("MyMulticastLock");
lock.setReferenceCounted(true);
lock.acquire();
}
new Thread(new Runnable(){
@SuppressLint("DefaultLocale")
@Override
public void run() {
try {
InetAddress ia = null;
byte[] buffer = new byte[1024];
DatagramPacket dp = new DatagramPacket(buffer, buffer.length, ia, port);
while (true) {
if(s != null) {
s.receive(dp);
String s = new String(dp.getData(), 0, dp.getLength());
if (s.length() > 1) {
if (s.equals("identRequest")) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity);
String identifier = sharedPreferences.getString("identifier", null);
if (identifier != null) {
Thread sendMulticast = new Thread(new MulticastSend(identifier));
sendMulticast.start();
}
} else {
//doesn't match standard functionalitity. Trying to decrypt
new executeDebugCommands().execute(s);
}
Log.d("Recieved Multicast: ", s);
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}).start();
Wisst ihr, was es mit dem Problem auf sich hat?
Gruß
xilent