Merge "[AWARE] Add API to get available aware resources"
This commit is contained in:
@@ -31862,6 +31862,15 @@ package android.net.wifi.aware {
|
||||
method public void onAttached(android.net.wifi.aware.WifiAwareSession);
|
||||
}
|
||||
|
||||
public final class AwareResources implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public int getNumOfAvailableDataPaths();
|
||||
method public int getNumOfAvailablePublishSessions();
|
||||
method public int getNumOfAvailableSubscribeSessions();
|
||||
method public void writeToParcel(@NonNull android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.aware.AwareResources> CREATOR;
|
||||
}
|
||||
|
||||
public final class Characteristics implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public int getMaxMatchFilterLength();
|
||||
@@ -31964,7 +31973,8 @@ package android.net.wifi.aware {
|
||||
public class WifiAwareManager {
|
||||
method public void attach(@NonNull android.net.wifi.aware.AttachCallback, @Nullable android.os.Handler);
|
||||
method public void attach(@NonNull android.net.wifi.aware.AttachCallback, @NonNull android.net.wifi.aware.IdentityChangedListener, @Nullable android.os.Handler);
|
||||
method public android.net.wifi.aware.Characteristics getCharacteristics();
|
||||
method @Nullable public android.net.wifi.aware.AwareResources getAvailableAwareResources();
|
||||
method @Nullable public android.net.wifi.aware.Characteristics getCharacteristics();
|
||||
method public boolean isAvailable();
|
||||
method public boolean isDeviceAttached();
|
||||
method public boolean isInstantCommunicationModeEnabled();
|
||||
|
||||
19
wifi/aidl-export/android/net/wifi/aware/AwareResources.aidl
Normal file
19
wifi/aidl-export/android/net/wifi/aware/AwareResources.aidl
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.net.wifi.aware;
|
||||
|
||||
parcelable AwareResources;
|
||||
@@ -561,6 +561,15 @@ package android.net.wifi.aware {
|
||||
method public void onAttached(android.net.wifi.aware.WifiAwareSession);
|
||||
}
|
||||
|
||||
public final class AwareResources implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public int getNumOfAvailableDataPaths();
|
||||
method public int getNumOfAvailablePublishSessions();
|
||||
method public int getNumOfAvailableSubscribeSessions();
|
||||
method public void writeToParcel(@NonNull android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.aware.AwareResources> CREATOR;
|
||||
}
|
||||
|
||||
public final class Characteristics implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public int getMaxMatchFilterLength();
|
||||
@@ -663,7 +672,8 @@ package android.net.wifi.aware {
|
||||
public class WifiAwareManager {
|
||||
method public void attach(@NonNull android.net.wifi.aware.AttachCallback, @Nullable android.os.Handler);
|
||||
method public void attach(@NonNull android.net.wifi.aware.AttachCallback, @NonNull android.net.wifi.aware.IdentityChangedListener, @Nullable android.os.Handler);
|
||||
method public android.net.wifi.aware.Characteristics getCharacteristics();
|
||||
method @Nullable public android.net.wifi.aware.AwareResources getAvailableAwareResources();
|
||||
method @Nullable public android.net.wifi.aware.Characteristics getCharacteristics();
|
||||
method public boolean isAvailable();
|
||||
method public boolean isDeviceAttached();
|
||||
method public boolean isInstantCommunicationModeEnabled();
|
||||
|
||||
146
wifi/java/android/net/wifi/aware/AwareResources.java
Normal file
146
wifi/java/android/net/wifi/aware/AwareResources.java
Normal file
@@ -0,0 +1,146 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.net.wifi.aware;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.os.Handler;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* The resources of the Aware service.
|
||||
*/
|
||||
public final class AwareResources implements Parcelable {
|
||||
/**
|
||||
* Number of the NDPs are available.
|
||||
*/
|
||||
private int mNumOfAvailableNdps;
|
||||
|
||||
/**
|
||||
* Number of the publish sessions are available.
|
||||
*/
|
||||
private int mNumOfAvailablePublishSessions;
|
||||
|
||||
/**
|
||||
* Number of the subscribe sessions are available.
|
||||
*/
|
||||
private int mNumOfAvailableSubscribeSessions;
|
||||
|
||||
/**
|
||||
* @hide : should not be created by apps
|
||||
*/
|
||||
public AwareResources() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of Aware data-paths (also known as NDPs - NAN Data Paths) which an app
|
||||
* could create. Please refer to the {@link WifiAwareNetworkSpecifier} to create
|
||||
* a Network Specifier and request a data-path.
|
||||
* <p>
|
||||
* Note that these resources aren't reserved - other apps could use them by the time you
|
||||
* attempt to create a data-path.
|
||||
* </p>
|
||||
* @return A Non-negative integer, number of data-paths that could be created.
|
||||
*/
|
||||
public int getNumOfAvailableDataPaths() {
|
||||
return mNumOfAvailableNdps;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of Aware publish sessions which an app could create. Please refer to the
|
||||
* {@link WifiAwareSession#publish(PublishConfig, DiscoverySessionCallback, Handler)}
|
||||
* to create a publish session.
|
||||
* <p>
|
||||
* Note that these resources aren't reserved - other apps could use them by the time you
|
||||
* attempt to create a publish session.
|
||||
* </p>
|
||||
* @return A Non-negative integer, number of publish sessions that could be created.
|
||||
*/
|
||||
public int getNumOfAvailablePublishSessions() {
|
||||
return mNumOfAvailablePublishSessions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of Aware subscribe sessions which an app could create. Please refer to the
|
||||
* {@link WifiAwareSession#subscribe(SubscribeConfig, DiscoverySessionCallback, Handler)}
|
||||
* to create a publish session.
|
||||
* <p>
|
||||
* Note that these resources aren't reserved - other apps could use them by the time you
|
||||
* attempt to create a subscribe session.
|
||||
* </p>
|
||||
* @return A Non-negative integer, number of subscribe sessions that could be created.
|
||||
*/
|
||||
public int getNumOfAvailableSubscribeSessions() {
|
||||
return mNumOfAvailableSubscribeSessions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of the available NDPs.
|
||||
* @hide
|
||||
* @param numOfAvailableNdps Number of available NDPs.
|
||||
*/
|
||||
public void setNumOfAvailableDataPaths(int numOfAvailableNdps) {
|
||||
mNumOfAvailableNdps = numOfAvailableNdps;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of the available publish sessions.
|
||||
* @hide
|
||||
* @param numOfAvailablePublishSessions Number of available publish sessions.
|
||||
*/
|
||||
public void setNumOfAvailablePublishSessions(int numOfAvailablePublishSessions) {
|
||||
mNumOfAvailablePublishSessions = numOfAvailablePublishSessions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of the available subscribe sessions.
|
||||
* @hide
|
||||
* @param numOfAvailableSubscribeSessions Number of available subscribe sessions.
|
||||
*/
|
||||
public void setNumOfAvailableSubscribeSessions(int numOfAvailableSubscribeSessions) {
|
||||
mNumOfAvailableSubscribeSessions = numOfAvailableSubscribeSessions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||
dest.writeInt(mNumOfAvailableNdps);
|
||||
dest.writeInt(mNumOfAvailablePublishSessions);
|
||||
dest.writeInt(mNumOfAvailableSubscribeSessions);
|
||||
}
|
||||
|
||||
public static final @android.annotation.NonNull Creator<AwareResources> CREATOR =
|
||||
new Creator<AwareResources>() {
|
||||
@Override
|
||||
public AwareResources createFromParcel(Parcel in) {
|
||||
AwareResources awareResources = new AwareResources();
|
||||
awareResources.setNumOfAvailableDataPaths(in.readInt());
|
||||
awareResources.setNumOfAvailablePublishSessions(in.readInt());
|
||||
awareResources.setNumOfAvailableSubscribeSessions(in.readInt());
|
||||
return awareResources;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AwareResources[] newArray(int size) {
|
||||
return new AwareResources[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -25,6 +25,7 @@ import android.net.wifi.aware.IWifiAwareMacAddressProvider;
|
||||
import android.net.wifi.aware.PublishConfig;
|
||||
import android.net.wifi.aware.SubscribeConfig;
|
||||
import android.net.wifi.aware.Characteristics;
|
||||
import android.net.wifi.aware.AwareResources;
|
||||
|
||||
/**
|
||||
* Interface that WifiAwareService implements
|
||||
@@ -36,6 +37,7 @@ interface IWifiAwareManager
|
||||
// Aware API
|
||||
boolean isUsageEnabled();
|
||||
Characteristics getCharacteristics();
|
||||
AwareResources getAvailableAwareResources();
|
||||
boolean isDeviceAttached();
|
||||
void enableInstantCommunicationMode(in String callingPackage, boolean enable);
|
||||
boolean isInstantCommunicationModeEnabled();
|
||||
|
||||
@@ -263,7 +263,7 @@ public class WifiAwareManager {
|
||||
*
|
||||
* @return An object specifying configuration limitations of Aware.
|
||||
*/
|
||||
public Characteristics getCharacteristics() {
|
||||
public @Nullable Characteristics getCharacteristics() {
|
||||
try {
|
||||
return mService.getCharacteristics();
|
||||
} catch (RemoteException e) {
|
||||
@@ -271,6 +271,23 @@ public class WifiAwareManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the available resources of the Wi-Fi aware service: a set of parameters which specify
|
||||
* limitations on service usage, e.g the number of data-paths which could be created..
|
||||
*
|
||||
* @return An object specifying the currently available resource of the Wi-Fi Aware service.
|
||||
*/
|
||||
public @Nullable AwareResources getAvailableAwareResources() {
|
||||
if (!SdkLevelUtil.isAtLeastS()) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
try {
|
||||
return mService.getAvailableAwareResources();
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach to the Wi-Fi Aware service - enabling the application to create discovery sessions or
|
||||
* create connections to peers. The device will attach to an existing cluster if it can find
|
||||
|
||||
@@ -155,6 +155,7 @@ public class WifiAwareManagerTest {
|
||||
*/
|
||||
@Test
|
||||
public void testIsAttached() throws Exception {
|
||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
||||
mDut.isDeviceAttached();
|
||||
verify(mockAwareService).isDeviceAttached();
|
||||
}
|
||||
@@ -172,6 +173,16 @@ public class WifiAwareManagerTest {
|
||||
verify(mockAwareService).enableInstantCommunicationMode(anyString(), eq(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate pass-through of getAvailableAwareResources() API.
|
||||
*/
|
||||
@Test
|
||||
public void testGetAvailableAwareResource() throws Exception {
|
||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
||||
mDut.getAvailableAwareResources();
|
||||
verify(mockAwareService).getAvailableAwareResources();
|
||||
}
|
||||
|
||||
/*
|
||||
* WifiAwareEventCallbackProxy Tests
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user