summaryrefslogtreecommitdiff
path: root/packages/PrintRecommendationService/src
diff options
context:
space:
mode:
authorPhilip P. Moltmann <moltmann@google.com>2018-04-16 13:43:37 -0700
committerPhilip P. Moltmann <moltmann@google.com>2018-04-17 10:15:59 -0700
commitc18178a93d7467466ba9b3619e4f25581dc89c56 (patch)
tree1c17e2659ebee01c7109c23ff99a07d9c917ad3f /packages/PrintRecommendationService/src
parent575fc02edf86b5394c2385fa6c0567a29042d347 (diff)
Enable multi-cast while resolving nsd services
Test: Before taimen never resolved nsd servives. How it resolved nsd services reliably when built in print service and print service recommendation service used NsdService Fixes: 75316187 Change-Id: I02f83fc2ea624174e61ddf0d61fdaed005b741eb
Diffstat (limited to 'packages/PrintRecommendationService/src')
-rw-r--r--packages/PrintRecommendationService/src/com/android/printservice/recommendation/RecommendationServiceImpl.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RecommendationServiceImpl.java b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RecommendationServiceImpl.java
index 128ed5085529..9ae31989eeb2 100644
--- a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RecommendationServiceImpl.java
+++ b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RecommendationServiceImpl.java
@@ -17,6 +17,7 @@
package com.android.printservice.recommendation;
import android.content.res.Configuration;
+import android.net.wifi.WifiManager;
import android.printservice.PrintService;
import android.printservice.recommendation.RecommendationInfo;
import android.printservice.recommendation.RecommendationService;
@@ -47,8 +48,20 @@ public class RecommendationServiceImpl extends RecommendationService
/** All registered plugins */
private ArrayList<RemotePrintServicePlugin> mPlugins;
+ /** Lock to keep multi-cast enabled */
+ private WifiManager.MulticastLock mMultiCastLock;
+
@Override
public void onConnected() {
+ WifiManager wifiManager = getSystemService(WifiManager.class);
+ if (wifiManager != null) {
+ if (mMultiCastLock == null) {
+ mMultiCastLock = wifiManager.createMulticastLock(LOG_TAG);
+ }
+
+ mMultiCastLock.acquire();
+ }
+
mPlugins = new ArrayList<>();
try {
@@ -125,6 +138,10 @@ public class RecommendationServiceImpl extends RecommendationService
Log.e(LOG_TAG, "Could not stop plugin", e);
}
}
+
+ if (mMultiCastLock != null) {
+ mMultiCastLock.release();
+ }
}
@Override