Contenido sobre Android
Buscar
Social
Ofertas laborales ES

Foro sobre Android > Error Datgram packet, Ayuda!

Buenas estoy intentando crear una app que reciba coordenadas y cada vez que esta cambie mande un datagram packet (UDP) con las cordenadas y la fecha a un servidor IP/Port, el problema que tengo es que cuando se va a realizar el envío la app se cierra (se detiene) y no envía nada tengo el código mostrado a continuación con el manifest y activity main.xml Les agradezco enormemente su tiempo y su ayuda ya que llevo largo tiempo tratando de resolver esto.

CODIGO MAINACTIVITY.JAVA:


package diseno.gpsdiseno;


import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.widget.TextView;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import android.util.Log;
import java.text.DecimalFormat;
import java.util.Date;
import android.widget.EditText;


public class MainActivity extends Activity {

TextView miTexto1, miTexto2;
private DatagramSocket datagramSocket;
private String destination_host;
private int destination_port;
private EditText editTextPort;
private EditText editTextHost;
private static final DecimalFormat decimal_format = new DecimalFormat("000.0000000");




private void SendMessageByUdp(String paramString)
{

try
{
this.editTextHost = ((EditText)findViewById(R.id.editText1));
this.editTextPort = ((EditText)findViewById(R.id.editText2));
this.destination_host = this.editTextHost.getEditableText().toString();
this.destination_port = Integer.parseInt(this.editTextPort.getEditableText().toString());
byte[] arrayOfByte = paramString.getBytes();
InetAddress localInetAddress = InetAddress.getByName(this.destination_host);
DatagramPacket localDatagramPacket = new DatagramPacket(arrayOfByte, arrayOfByte.length, localInetAddress, this.destination_port);
if (this.datagramSocket == null) {
this.datagramSocket = new DatagramSocket();
}
this.datagramSocket.send(localDatagramPacket);
return;
}
catch (IOException localIOException)
{
this.datagramSocket = null;
Log.v("SensorUdp#SendDebugMessageByUdp", localIOException.toString());
}
}

protected void onCreate(Bundle paramString) {
super.onCreate(paramString);
setContentView(R.layout.activity_main);

miTexto1 = (TextView)findViewById(R.id.textView1);
miTexto2 = (TextView)findViewById(R.id.textView2);

LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
final Location localizacion = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

if (localizacion != null){
miTexto1.setText("Latitud: " + String.valueOf(localizacion.getLatitude()));
miTexto2.setText("Longitud: " + String.valueOf(localizacion.getLongitude()));
} else {
miTexto1.setText("Sin datos de latitud.");
miTexto2.setText("Sin datos de longitud.");
}

LocationListener locListener = new LocationListener() {

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onLocationChanged(Location localizacion ) {
miTexto1.setText("Latitud: " + String.valueOf(localizacion.getLatitude()));
miTexto2.setText("Longitud: " + String.valueOf(localizacion.getLongitude()));
Date localDate1 = new Date();
String str1 = localDate1.getTime() + ", " + decimal_format.format(localizacion.getLatitude()) + ", " + decimal_format.format(localizacion.getLongitude()) + ", " + localizacion.getTime() + "\n";
SendMessageByUdp(str1);



}
};
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locListener);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}

-------------------------------------------------------------------------------------------------------------

CODIGO ANDROIDMANIFEST.XML:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="diseno.gpsdiseno"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.SET_DEBUG_APP"/>




<category android:name="android.intent.category.LAUNCHER" />


</manifest>

----------------------------------------------------------------------------------------------------------

CODIGO LAYOUT ACTIVITY_MAIN.XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="diseno.gpsdiseno.MainActivity" >

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="50dp"
android:text="view2" />

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:ems="10"
android:inputType="number"
android:text="192.168.1.64" >

<requestFocus />
</EditText>

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="view" />

<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dp"
android:ems="10"
android:inputType="number"
android:text="12345" />

</RelativeLayout>

---------------------------------------------------------------------------------------------------------

ERRORES EN MODO DEBUG DEL LOGCAT:

10-01 20:39:13.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:14.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:14.704: E/ActivityManager(586): Intent: Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:15.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:15.497: E/ActivityManager(586): Intent: Intent { act=com.flashlight.ultra.gps.STATUS_UPDATE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:16.113: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:16.152: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:17.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:18.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:19.113: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:20.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:21.113: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:21.184: E/ActivityManager(586): Intent: Intent { act=com.jrdcom.action.STATUSBAR.OPAQUE flg=0x10 }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:21.259: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:21.884: E/ActivityManager(586): Intent: Intent { act=android.net.wifi.RSSI_CHANGED flg=0x8000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:22.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:22.730: E/ActivityManager(586): Intent: Intent { act=com.jrdcom.action.STATUSBAR.TRANSPARENT flg=0x10 }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:23.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:24.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:24.816: E/ActivityManager(586): Intent: Intent { act=com.jrdcom.action.STATUSBAR.OPAQUE flg=0x10 }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:25.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:25.502: E/ActivityManager(586): Intent: Intent { act=com.flashlight.ultra.gps.STATUS_UPDATE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:26.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:26.358: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:27.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:28.110: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:29.111: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:30.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:31.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:31.492: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:32.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:33.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:34.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:34.694: E/ActivityManager(586): Intent: Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:35.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:35.508: E/ActivityManager(586): Intent: Intent { act=com.flashlight.ultra.gps.STATUS_UPDATE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:36.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:36.117: E/ActivityManager(586): Intent: Intent { act=android.location.GPS_FIX_CHANGE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:36.606: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:37.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:38.111: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:38.122: E/ActivityManager(586): Intent: Intent { act=android.location.GPS_FIX_CHANGE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:39.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:40.110: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:41.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:42.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:43.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:44.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:45.111: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:45.532: E/ActivityManager(586): Intent: Intent { act=com.flashlight.ultra.gps.STATUS_UPDATE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:46.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:46.860: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:47.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:48.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:49.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:50.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:51.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:52.084: E/ActivityManager(586): Intent: Intent { act=android.net.wifi.RSSI_CHANGED flg=0x8000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:52.115: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:53.112: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:54.113: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:54.704: E/ActivityManager(586): Intent: Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:55.110: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:55.530: E/ActivityManager(586): Intent: Intent { act=com.flashlight.ultra.gps.STATUS_UPDATE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:57.082: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:57.098: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:58.082: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:39:58.143: E/ActivityManager(586): Intent: Intent { act=android.net.wifi.RSSI_CHANGED flg=0x8000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:39:59.082: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:40:00.004: E/ActivityManager(586): Intent: Intent { act=android.intent.action.TIME_TICK flg=0x40000014 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:40:00.082: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:40:01.082: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:40:01.385: E/AndroidRuntime(6086): FATAL EXCEPTION: main
10-01 20:40:01.385: E/AndroidRuntime(6086): android.os.NetworkOnMainThreadException
10-01 20:40:01.385: E/AndroidRuntime(6086): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1128)
10-01 20:40:01.385: E/AndroidRuntime(6086): at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:175)
10-01 20:40:01.385: E/AndroidRuntime(6086): at libcore.io.IoBridge.sendto(IoBridge.java:517)
10-01 20:40:01.385: E/AndroidRuntime(6086): at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:182)
10-01 20:40:01.385: E/AndroidRuntime(6086): at java.net.DatagramSocket.send(DatagramSocket.java:284)
10-01 20:40:01.385: E/AndroidRuntime(6086): at diseno.gpsdiseno.MainActivity.SendMessageByUdp(MainActivity.java:52)
10-01 20:40:01.385: E/AndroidRuntime(6086): at diseno.gpsdiseno.MainActivity.access$1(MainActivity.java:37)
10-01 20:40:01.385: E/AndroidRuntime(6086): at diseno.gpsdiseno.MainActivity$1.onLocationChanged(MainActivity.java:106)
10-01 20:40:01.385: E/AndroidRuntime(6086): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:257)
10-01 20:40:01.385: E/AndroidRuntime(6086): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:186)
10-01 20:40:01.385: E/AndroidRuntime(6086): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:202)
10-01 20:40:01.385: E/AndroidRuntime(6086): at android.os.Handler.dispatchMessage(Handler.java:107)
10-01 20:40:01.385: E/AndroidRuntime(6086): at android.os.Looper.loop(Looper.java:194)
10-01 20:40:01.385: E/AndroidRuntime(6086): at android.app.ActivityThread.main(ActivityThread.java:5400)
10-01 20:40:01.385: E/AndroidRuntime(6086): at java.lang.reflect.Method.invokeNative(Native Method)
10-01 20:40:01.385: E/AndroidRuntime(6086): at java.lang.reflect.Method.invoke(Method.java:525)
10-01 20:40:01.385: E/AndroidRuntime(6086): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
10-01 20:40:01.385: E/AndroidRuntime(6086): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
10-01 20:40:01.385: E/AndroidRuntime(6086): at dalvik.system.NativeStart.main(Native Method)
10-01 20:40:01.417: E/DropBoxManagerService(586): Flie temp is not exists !
10-01 20:40:01.443: E/AppErrorDialog(586): Failed to get ILowStorageHandle instance
10-01 20:40:01.480: E/Resources(586): themeColor=-543744
10-01 20:40:02.082: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:40:02.204: E/ActivityManager(586): Intent: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:40:03.083: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:40:04.082: E/mnl_linux(6142): mtk_gps_sys_gps_mnl_callback: Get SV info success
10-01 20:40:04.193: E/ActivityManager(586): Intent: Intent { act=android.net.wifi.RSSI_CHANGED flg=0x8000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:40:04.464: E/ActivityManager(586): Intent: Intent { act=com.jrdcom.action.STATUSBAR.TRANSPARENT flg=0x10 }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:40:04.592: E/mnl_linux(6142): thread_cmd_func: receives ERR_FORCE_QUIT
10-01 20:40:04.701: E/ActivityManager(586): Intent: Intent { act=android.location.GPS_ENABLED_CHANGE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:40:05.536: E/ActivityManager(586): Intent: Intent { act=com.flashlight.ultra.gps.STATUS_UPDATE flg=0x10 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false
10-01 20:40:10.254: E/ActivityManager(586): Intent: Intent { act=android.net.wifi.RSSI_CHANGED flg=0x8000010 (has extras) }mEnablePowerSaverManagerFunction:truesuperMode:false


Gracias estaré atento a sus consejos y correcciones.

octubre 2, 2014 | Unregistered CommenterNelson

Gracias por poner el LogCat ahora si se puede ver que pasa.

Lo que te pasa es que en el hilo principal de la aplicación de Android 4, creo que las anteriores no, no puedes hacer operaciones de red, debido a que pueden tardar mucho y se prohíbe para evitar bajo rendimiento.

La solución es hacerlo en otro hilo, lo más fácil es usando un AsyncTask

Te dejo una referencia de StackOverflow.

http://stackoverflow.com/questions/13055552/android-cant-perform-network-operation-on-main-thread

El capítulo de NetWork operations de Android

https://developer.android.com/training/basics/network-ops/index.html

Referencia a AsyncTask

http://developer.android.com/reference/android/os/AsyncTask.html

Y también de dejo otra referencia al foro de Android, a un caso en que preguntaban sobre el AsyncTask y que ya contesté, te puede servir como referencia para ver como lo han usado.

http://www.javahispano.org/foroandroid/post/2408388

También ten en cuenta que algo deberá recibir ese mensaje, así que te dejo más referencias útiles que me han servido para ver de que va esto de las DatagramPackets y DatagramSockets

http://nereida.deioc.ull.es/~cleon/doctorado/doc06/doc06/html/node8.html

http://stackoverflow.com/questions/18430330/sending-and-receiving-udp-packet-on-datagram-socket-in-android

octubre 2, 2014 | Registered Commenterantuansoft