Skip to content
Snippets Groups Projects
Commit 00cf7eda authored by Yuyang Huang's avatar Yuyang Huang
Browse files

Enable service offload API

API-Coverage-Bug: 282618639
Bug: 269240366
Test: atest CtsNetTestCases
Change-Id: I7ac72b675ff3715891f31bc03c453e14b1264e40
parent 33fa4d26
No related branches found
No related tags found
No related merge requests found
...@@ -348,3 +348,43 @@ package android.net.netstats.provider { ...@@ -348,3 +348,43 @@ package android.net.netstats.provider {
} }
package android.net.nsd {
public final class NsdManager {
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void registerOffloadEngine(@NonNull String, long, long, @NonNull java.util.concurrent.Executor, @NonNull android.net.nsd.OffloadEngine);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void unregisterOffloadEngine(@NonNull android.net.nsd.OffloadEngine);
}
public interface OffloadEngine {
method public void onOffloadServiceRemoved(@NonNull android.net.nsd.OffloadServiceInfo);
method public void onOffloadServiceUpdated(@NonNull android.net.nsd.OffloadServiceInfo);
field public static final int OFFLOAD_CAPABILITY_BYPASS_MULTICAST_LOCK = 1; // 0x1
field public static final int OFFLOAD_TYPE_FILTER_QUERIES = 2; // 0x2
field public static final int OFFLOAD_TYPE_FILTER_REPLIES = 4; // 0x4
field public static final int OFFLOAD_TYPE_REPLY = 1; // 0x1
}
public final class OffloadServiceInfo implements android.os.Parcelable {
ctor public OffloadServiceInfo(@NonNull android.net.nsd.OffloadServiceInfo.Key, @NonNull java.util.List<java.lang.String>, @NonNull String, @Nullable byte[], @IntRange(from=0, to=java.lang.Integer.MAX_VALUE) int, long);
method public int describeContents();
method @NonNull public String getHostname();
method @NonNull public android.net.nsd.OffloadServiceInfo.Key getKey();
method @Nullable public byte[] getOffloadPayload();
method public long getOffloadType();
method public int getPriority();
method @NonNull public java.util.List<java.lang.String> getSubtypes();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.nsd.OffloadServiceInfo> CREATOR;
}
public static final class OffloadServiceInfo.Key implements android.os.Parcelable {
ctor public OffloadServiceInfo.Key(@NonNull String, @NonNull String);
method public int describeContents();
method @NonNull public String getServiceName();
method @NonNull public String getServiceType();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.nsd.OffloadServiceInfo.Key> CREATOR;
}
}
...@@ -20,6 +20,7 @@ import android.net.nsd.OffloadServiceInfo; ...@@ -20,6 +20,7 @@ import android.net.nsd.OffloadServiceInfo;
/** /**
* Callbacks from NsdService to inform providers of packet offload. * Callbacks from NsdService to inform providers of packet offload.
*
* @hide * @hide
*/ */
oneway interface IOffloadEngine { oneway interface IOffloadEngine {
......
...@@ -28,6 +28,7 @@ import android.annotation.Nullable; ...@@ -28,6 +28,7 @@ import android.annotation.Nullable;
import android.annotation.RequiresPermission; import android.annotation.RequiresPermission;
import android.annotation.SdkConstant; import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType; import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.annotation.SystemService; import android.annotation.SystemService;
import android.app.compat.CompatChanges; import android.app.compat.CompatChanges;
import android.content.Context; import android.content.Context;
...@@ -364,7 +365,7 @@ public final class NsdManager { ...@@ -364,7 +365,7 @@ public final class NsdManager {
* *
* @hide * @hide
*/ */
//@SystemApi @SystemApi
@RequiresPermission(anyOf = {NETWORK_SETTINGS, PERMISSION_MAINLINE_NETWORK_STACK, @RequiresPermission(anyOf = {NETWORK_SETTINGS, PERMISSION_MAINLINE_NETWORK_STACK,
NETWORK_STACK}) NETWORK_STACK})
public void registerOffloadEngine(@NonNull String ifaceName, public void registerOffloadEngine(@NonNull String ifaceName,
...@@ -401,7 +402,7 @@ public final class NsdManager { ...@@ -401,7 +402,7 @@ public final class NsdManager {
* *
* @hide * @hide
*/ */
//@SystemApi @SystemApi
@RequiresPermission(anyOf = {NETWORK_SETTINGS, PERMISSION_MAINLINE_NETWORK_STACK, @RequiresPermission(anyOf = {NETWORK_SETTINGS, PERMISSION_MAINLINE_NETWORK_STACK,
NETWORK_STACK}) NETWORK_STACK})
public void unregisterOffloadEngine(@NonNull OffloadEngine engine) { public void unregisterOffloadEngine(@NonNull OffloadEngine engine) {
......
...@@ -18,6 +18,7 @@ package android.net.nsd; ...@@ -18,6 +18,7 @@ package android.net.nsd;
import android.annotation.LongDef; import android.annotation.LongDef;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.SystemApi;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
...@@ -32,7 +33,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -32,7 +33,7 @@ import java.lang.annotation.RetentionPolicy;
* *
* @hide * @hide
*/ */
//@SystemApi @SystemApi
public interface OffloadEngine { public interface OffloadEngine {
/** /**
* Indicates that the OffloadEngine can generate replies to mDns queries. * Indicates that the OffloadEngine can generate replies to mDns queries.
...@@ -55,6 +56,9 @@ public interface OffloadEngine { ...@@ -55,6 +56,9 @@ public interface OffloadEngine {
*/ */
int OFFLOAD_CAPABILITY_BYPASS_MULTICAST_LOCK = 1; int OFFLOAD_CAPABILITY_BYPASS_MULTICAST_LOCK = 1;
/**
* @hide
*/
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@LongDef(flag = true, prefix = {"OFFLOAD_TYPE"}, value = { @LongDef(flag = true, prefix = {"OFFLOAD_TYPE"}, value = {
OFFLOAD_TYPE_REPLY, OFFLOAD_TYPE_REPLY,
...@@ -63,6 +67,9 @@ public interface OffloadEngine { ...@@ -63,6 +67,9 @@ public interface OffloadEngine {
}) })
@interface OffloadType {} @interface OffloadType {}
/**
* @hide
*/
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@LongDef(flag = true, prefix = {"OFFLOAD_CAPABILITY"}, value = { @LongDef(flag = true, prefix = {"OFFLOAD_CAPABILITY"}, value = {
OFFLOAD_CAPABILITY_BYPASS_MULTICAST_LOCK OFFLOAD_CAPABILITY_BYPASS_MULTICAST_LOCK
......
...@@ -19,6 +19,7 @@ package android.net.nsd; ...@@ -19,6 +19,7 @@ package android.net.nsd;
import android.annotation.IntRange; import android.annotation.IntRange;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
...@@ -36,7 +37,7 @@ import java.util.Objects; ...@@ -36,7 +37,7 @@ import java.util.Objects;
* *
* @hide * @hide
*/ */
// @SystemApi @SystemApi
public final class OffloadServiceInfo implements Parcelable { public final class OffloadServiceInfo implements Parcelable {
@NonNull @NonNull
private final Key mKey; private final Key mKey;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment