Guest User

Untitled

a guest
May 24th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. java.lang.IllegalArgumentException: listener already in use
  2. at android.net.nsd.NsdManager.registerService(NsdManager.java:485)
  3. at br.com.shootinghouse.sc.ServerActivity.registerService(ServerActivity.java:76)
  4. at br.com.shootinghouse.sc.ServerActivity.onResume(ServerActivity.java:50)
  5. at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1269)
  6. at android.app.Activity.performResume(Activity.java:6783)
  7. at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3406)
  8. at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3469)
  9. at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2732)
  10. at android.app.ActivityThread.-wrap12(ActivityThread.java)
  11. at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
  12. at android.os.Handler.dispatchMessage(Handler.java:102)
  13. at android.os.Looper.loop(Looper.java:154)
  14. at android.app.ActivityThread.main(ActivityThread.java:6119)
  15. at java.lang.reflect.Method.invoke(Native Method)
  16. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
  17. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
  18.  
  19. private Manager manager;
  20. private LiteListener listener;
  21. private String SERVICE_NAME = "Server device";
  22. private String SERVICE_TYPE = "_http._tcp.";
  23. private int SERVICE_Port = 5432;
  24. private NsdManager mNsdManager;
  25.  
  26. @Override
  27. public void onCreate(Bundle savedInstanceState) {
  28. super.onCreate(savedInstanceState);
  29. mNsdManager = (NsdManager) getSystemService(getApplicationContext().NSD_SERVICE);
  30. registerService(SERVICE_Port);
  31. try {
  32. manager = new Manager(new AndroidContext(getApplicationContext()), Manager.DEFAULT_OPTIONS);
  33. } catch (Throwable e) {
  34. e.printStackTrace();
  35. }
  36. startListener();
  37.  
  38. URL url = null;
  39. try {
  40. url = new URL("http://" + getLocalIpAddress() + ":" + SERVICE_Port + "/banco144");
  41. } catch (Throwable e) {
  42. e.printStackTrace();
  43. }
  44. System.out.println("Listening on :: " + url.toString() + " "
  45. + SERVICE_NAME + " " +
  46. SERVICE_TYPE);
  47. }
  48.  
  49. @Override
  50. protected void onResume() {
  51. super.onResume();
  52. if (mNsdManager != null) {
  53. registerService(SERVICE_Port);
  54. }
  55.  
  56. }
  57.  
  58. void startListener() {
  59. listener = new LiteListener(manager, SERVICE_Port, null);
  60. Thread thread = new Thread(listener);
  61. thread.start();
  62. }
  63.  
  64. @Override
  65. protected void onDestroy() {
  66. if (mNsdManager != null) {
  67. mNsdManager.unregisterService(mRegistrationListener);
  68. }
  69. super.onDestroy();
  70. }
  71.  
  72. public void registerService(int port) {
  73. NsdServiceInfo serviceInfo = new NsdServiceInfo();
  74. serviceInfo.setServiceName(SERVICE_NAME);
  75. serviceInfo.setServiceType(SERVICE_TYPE);
  76. serviceInfo.setPort(port);
  77.  
  78. try {
  79. mNsdManager.registerService(serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener);
  80. } catch (Exception e) {
  81. e.printStackTrace();
  82. }
  83.  
  84. }
  85.  
  86. NsdManager.RegistrationListener mRegistrationListener = new NsdManager.RegistrationListener() {
  87. @Override
  88. public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) {
  89. SERVICE_NAME = NsdServiceInfo.getServiceName();
  90.  
  91. }
  92.  
  93. @Override
  94. public void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
  95. }
  96.  
  97. @Override
  98. public void onServiceUnregistered(NsdServiceInfo serviceInfo) {
  99. }
  100.  
  101. @Override
  102. public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
  103. }
  104. };
  105.  
  106. public String getLocalIpAddress() {
  107. WifiManager wm = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
  108. return Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
  109. }
Add Comment
Please, Sign In to add comment