diff options
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 10 | ||||
| -rw-r--r-- | services/java/com/android/server/SystemServer.java | 11 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/rtt/package.html | 39 |
3 files changed, 57 insertions, 3 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index ef8f84bd1690..31ca19859292 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -2330,6 +2330,16 @@ public abstract class PackageManager { /** * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device supports Wi-Fi RTT (IEEE 802.11mc). + * + * @hide RTT_API + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_WIFI_RTT = "android.hardware.wifi.rtt"; + + + /** + * Feature for {@link #getSystemAvailableFeatures} and * {@link #hasSystemFeature}: The device supports LoWPAN networking. * @hide */ diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 6fc614ba9f09..1d385b5cd0f3 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -1079,8 +1079,15 @@ public final class SystemServer { if (!disableRtt) { traceBeginAndSlog("StartWifiRtt"); mSystemServiceManager.startService("com.android.server.wifi.RttService"); - mSystemServiceManager.startService("com.android.server.wifi.rtt.RttService"); traceEnd(); + + if (context.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_WIFI_RTT)) { + traceBeginAndSlog("StartRttService"); + mSystemServiceManager.startService( + "com.android.server.wifi.rtt.RttService"); + traceEnd(); + } } if (context.getPackageManager().hasSystemFeature( @@ -1088,8 +1095,6 @@ public final class SystemServer { traceBeginAndSlog("StartWifiAware"); mSystemServiceManager.startService(WIFI_AWARE_SERVICE_CLASS); traceEnd(); - } else { - Slog.i(TAG, "No Wi-Fi Aware Service (Aware support Not Present)"); } if (context.getPackageManager().hasSystemFeature( diff --git a/wifi/java/android/net/wifi/rtt/package.html b/wifi/java/android/net/wifi/rtt/package.html new file mode 100644 index 000000000000..221b94b77b94 --- /dev/null +++ b/wifi/java/android/net/wifi/rtt/package.html @@ -0,0 +1,39 @@ +<HTML> +<BODY> +<p>Provides classes which allow applications to use Wi-Fi RTT (IEEE 802.11mc) to measure distance + to supporting Access Points and peer devices.</p> +<p>The primary entry point to Wi-Fi RTT capabilities is the + {@link android.net.wifi.rtt.WifiRttManager} class, which is acquired by calling + {@link android.content.Context#getSystemService(String) + Context.getSystemService(Context.WIFI_RTT_SERVICE)}</p> + +<p>Some APIs may require the following user permissions:</p> +<ul> + <li>{@link android.Manifest.permission#ACCESS_WIFI_STATE}</li> + <li>{@link android.Manifest.permission#CHANGE_WIFI_STATE}</li> + <li>{@link android.Manifest.permission#ACCESS_COARSE_LOCATION}</li> +</ul> + +<p class="note"><strong>Note:</strong> Not all Android-powered devices support Wi-Fi RTT + functionality. + If your application only works with Wi-Fi RTT (i.e. it should only be installed on devices which + support Wi-Fi RTT), declare so with a <a + href="{@docRoot}guide/topics/manifest/uses-feature-element.html"> + {@code <uses-feature>}</a> + element in the manifest file:</p> +<pre> +<manifest ...> + <uses-feature android:name="android.hardware.wifi.rtt" /> + ... +</manifest> +</pre> +<p>Alternatively, if your application does not require Wi-Fi RTT but can take advantage of it if + available, you can perform + the check at run-time in your code using {@link + android.content.pm.PackageManager#hasSystemFeature(String)} with {@link + android.content.pm.PackageManager#FEATURE_WIFI_RTT}:</p> +<pre> + getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_RTT) +</pre> +</BODY> +</HTML> |