Descubrimiento del servicio de red error de tutorial android: Servicio perdido, el teléfono se desactiva

Tengo un problema al intentar seguir el tutorial de Networking de developer.android.com.
( http://developer.android.com/training/connect-devices-wirelessly/nsd.html )
Tengo un error, ya veces mi teléfono se apaga.

A continuación se muestra mi código:

package com.example.networking; import java.io.IOException; import java.net.ServerSocket; import javax.sound.sampled.Port; import android.net.nsd.NsdManager; import android.net.nsd.NsdManager.DiscoveryListener; import android.net.nsd.NsdManager.RegistrationListener; import android.net.nsd.NsdManager.ResolveListener; import android.net.nsd.NsdServiceInfo; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.Menu; @SuppressLint("NewApi") public class MainActivity extends Activity { RegistrationListener mRegistrationListener; DiscoveryListener mDiscoveryListener; String mServiceName; NsdServiceInfo mServiceInfo; ServerSocket mServerSocket; int mLocalPort; NsdManager mNsdManager; final String TAG = "---Networking"; final String SERVICE_TYPE = "_http._tcp."; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initialize a server socket on the next available port. try { mServerSocket = new ServerSocket(0); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Store the chosen port. mLocalPort = mServerSocket.getLocalPort(); registerService(mLocalPort); } @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; } public void registerService(int port) { // Create the NsdServiceInfo object, and populate it. mServiceInfo = new NsdServiceInfo(); // The name is subject to change based on conflicts // with other services advertised on the same network. mServiceInfo.setServiceName("NsdChat"); mServiceInfo.setServiceType("_http._tcp."); mServiceInfo.setPort(port); mNsdManager = (NsdManager) getApplicationContext().getSystemService(Context.NSD_SERVICE); initializeRegistrationListener(); initializeDiscoveryListener(); mNsdManager.registerService( mServiceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); mNsdManager.discoverServices( SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); } public void initializeRegistrationListener() { mRegistrationListener = new NsdManager.RegistrationListener() { @Override public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) { // Save the service name. Android may have changed it in order to // resolve a conflict, so update the name you initially requested // with the name Android actually used. mServiceName = NsdServiceInfo.getServiceName(); Log.d(TAG , "Service name: " + mServiceName); Log.d(TAG , "Port number: " + mLocalPort); } @Override public void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { // Registration failed! Put debugging code here to determine why. Log.d(TAG , "Registration Failed! Error code: " + errorCode); } @Override public void onServiceUnregistered(NsdServiceInfo arg0) { // Service has been unregistered. This only happens when you call // NsdManager.unregisterService() and pass in this listener. Log.d(TAG , "Service unregistered."); } @Override public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { // Unregistration failed. Put debugging code here to determine why. Log.d(TAG , "Unregistration failed!"); } }; } public void initializeDiscoveryListener() { // Instantiate a new DiscoveryListener mDiscoveryListener = new NsdManager.DiscoveryListener() { // Called as soon as service discovery begins. @Override public void onDiscoveryStarted(String regType) { Log.d(TAG , "Service discovery started"); } @Override public void onServiceFound(NsdServiceInfo service) { // A service was found! Do something with it. Log.d(TAG, "Service discovery success: " + service); if (!service.getServiceType().equals(SERVICE_TYPE)) { // Service type is the string containing the protocol and // transport layer for this service. Log.d(TAG, "Unknown Service Type: " + service.getServiceType()); } else if (service.getServiceName().equals(mServiceName)) { // The name of the service tells the user what they'd be // connecting to. It could be "Bob's Chat App". Log.d(TAG, "Same machine: " + mServiceName); } else if (service.getServiceName().contains("NsdChat")){ mNsdManager.resolveService(service, new ResolveListener() { @Override public void onServiceResolved(NsdServiceInfo serviceInfo) { // TODO Auto-generated method stub Log.d(TAG, "Resolving service..."); } @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { // TODO Auto-generated method stub Log.d(TAG, "Service resolve failed!"); } }); } } @Override public void onServiceLost(NsdServiceInfo service) { // When the network service is no longer available. // Internal bookkeeping code goes here. Log.e(TAG, "service lost: " + service); } @Override public void onDiscoveryStopped(String serviceType) { Log.i(TAG, "Discovery stopped: " + serviceType); } @Override public void onStartDiscoveryFailed(String serviceType, int errorCode) { Log.e(TAG, "Discovery failed: Error code: " + errorCode); mNsdManager.stopServiceDiscovery(this); } @Override public void onStopDiscoveryFailed(String serviceType, int errorCode) { Log.e(TAG, "Discovery failed: Error code: " + errorCode); mNsdManager.stopServiceDiscovery(this); } }; } } 

El problema es visible en la imagen adjunta (no estoy seguro de cómo debería llamarlo). Tengo errores repetidos.

introduzca la descripción de la imagen aquí

¿Podría alguien explicarme qué estoy haciendo mal o por qué consigo estos errores? ¿Debo tener diferentes puertos para el registro y el descubrimiento? (NsdManager diferente?)

One Solution collect form web for “Descubrimiento del servicio de red error de tutorial android: Servicio perdido, el teléfono se desactiva”

su registro se ve bien para mí. hay descubrimiento exitoso y resolución exitosa, así que continúe con el resultado de la resolución.

  • Servicio de Android que no recibe Actualizaciones de ubicación
  • ¿Cómo comprobar el permiso automático de MIUI mediante programación?
  • Depuración de fallos de servicio
  • Una forma más eficiente de actualizar la interfaz de usuario del servicio que las intenciones?
  • Eventos de apagado en Android
  • En servicio de facturación de aplicaciones que se mueren a veces
  • La notificación de la barra de estado de Android lanza una nueva aplicación aunque esté en ejecución. ¿Cómo sincronizar la aplicación de lanzamiento desde el icono de la aplicación y la notificación de barra de estado?
  • NotificationManager.cancel () no funciona para mí
  • Lanzar una excepción personalizada de un servicio a una actividad
  • ¿Cuál es la forma correcta de detener un servicio que se está ejecutando como primer plano
  • cómo abrir la configuración de accesibilidad de mi aplicación directamente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.