summaryrefslogtreecommitdiff
path: root/packages/PrintRecommendationService
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
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')
-rw-r--r--packages/PrintRecommendationService/AndroidManifest.xml5
-rw-r--r--packages/PrintRecommendationService/src/com/android/printservice/recommendation/RecommendationServiceImpl.java17
2 files changed, 20 insertions, 2 deletions
diff --git a/packages/PrintRecommendationService/AndroidManifest.xml b/packages/PrintRecommendationService/AndroidManifest.xml
index 2e9342c9354a..750b9fb7e52f 100644
--- a/packages/PrintRecommendationService/AndroidManifest.xml
+++ b/packages/PrintRecommendationService/AndroidManifest.xml
@@ -18,12 +18,13 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.printservice.recommendation"
- android:versionCode="2"
- android:versionName="1.1.0">
+ android:versionCode="3"
+ android:versionName="1.2.0">
<uses-sdk android:minSdkVersion="24"
android:targetSdkVersion="25" />
+ <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application
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