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: proceso vs. no
  • Actualizar Android ListView en Widget
  • En servicio de facturación de aplicaciones que se mueren a veces
  • El archivo AIDL no genera un archivo Java
  • Diseño de hilos múltiples de Android Service
  • 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?
  • Revisión 2: Cómo pasar los datos de un servicio de fondo / subproceso a alguna otra actividad que no sea MainActivity que creó el servicio de fondo
  • La llamada de servicio vuelve a la actividad en android
  • Cómo repetir la notificación diaria en el tiempo específico en androide a través del servicio de fondo
  • Android: Unidad de prueba de un servicio
  • Cómo enlazar una actividad a un servicio y controlar y administrar el servicio desde la actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.