18340beca6282093d9932ea30ef010024f75c689aEtan Cohen/*
28340beca6282093d9932ea30ef010024f75c689aEtan Cohen * Copyright (C) 2016 The Android Open Source Project
320d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen *
420d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * Licensed under the Apache License, Version 2.0 (the "License");
520d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * you may not use this file except in compliance with the License.
620d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * You may obtain a copy of the License at
720d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen *
88340beca6282093d9932ea30ef010024f75c689aEtan Cohen *      http://www.apache.org/licenses/LICENSE-2.0
920d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen *
1020d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * Unless required by applicable law or agreed to in writing, software
1120d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * distributed under the License is distributed on an "AS IS" BASIS,
1220d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1320d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * See the License for the specific language governing permissions and
1420d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * limitations under the License.
1520d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen */
1620d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen
170849ded00879dc05175c079011aa038c5ba0770aEtan Cohenpackage android.net.wifi.aware;
1820d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen
1920d329b08df7d1a94e6caee781f09e812a79c913Etan Cohenimport android.app.PendingIntent;
2020d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen
210849ded00879dc05175c079011aa038c5ba0770aEtan Cohenimport android.net.wifi.aware.ConfigRequest;
220849ded00879dc05175c079011aa038c5ba0770aEtan Cohenimport android.net.wifi.aware.IWifiAwareDiscoverySessionCallback;
230849ded00879dc05175c079011aa038c5ba0770aEtan Cohenimport android.net.wifi.aware.IWifiAwareEventCallback;
240849ded00879dc05175c079011aa038c5ba0770aEtan Cohenimport android.net.wifi.aware.PublishConfig;
250849ded00879dc05175c079011aa038c5ba0770aEtan Cohenimport android.net.wifi.aware.SubscribeConfig;
263de35a5e5573828838bfa6359a1ac1bf22b19303Etan Cohenimport android.net.wifi.aware.Characteristics;
27447b03233443dcae816bf3dfaaee5ec0fb77a2f4Etan Cohenimport android.net.wifi.RttManager;
2820d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen
2920d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen/**
300849ded00879dc05175c079011aa038c5ba0770aEtan Cohen * Interface that WifiAwareService implements
3120d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen *
3220d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen * {@hide}
3320d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen */
340849ded00879dc05175c079011aa038c5ba0770aEtan Coheninterface IWifiAwareManager
3520d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen{
360849ded00879dc05175c079011aa038c5ba0770aEtan Cohen    // Aware API
375f47bf21990ffa92747d7a012d9ec9034b813f28Etan Cohen    boolean isUsageEnabled();
383de35a5e5573828838bfa6359a1ac1bf22b19303Etan Cohen    Characteristics getCharacteristics();
395f47bf21990ffa92747d7a012d9ec9034b813f28Etan Cohen
4020d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen    // client API
410849ded00879dc05175c079011aa038c5ba0770aEtan Cohen    void connect(in IBinder binder, in String callingPackage, in IWifiAwareEventCallback callback,
4278ef40a668db2bd898cdd97affad370ee78e9233Etan Cohen            in ConfigRequest configRequest, boolean notifyOnIdentityChanged);
43982a045a8b65ac6552d0abe7c9204eac2a405b20Etan Cohen    void disconnect(int clientId, in IBinder binder);
4420d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen
453855370c24b575e0943a9a3c146fda980cd71e24Etan Cohen    void publish(int clientId, in PublishConfig publishConfig,
460849ded00879dc05175c079011aa038c5ba0770aEtan Cohen            in IWifiAwareDiscoverySessionCallback callback);
47231859c2aa3930892a81b2d3cc368a79fbcfaed0Etan Cohen    void subscribe(int clientId, in SubscribeConfig subscribeConfig,
480849ded00879dc05175c079011aa038c5ba0770aEtan Cohen            in IWifiAwareDiscoverySessionCallback callback);
49231859c2aa3930892a81b2d3cc368a79fbcfaed0Etan Cohen
5020d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen    // session API
51bd4bf35d22a04b0c5a39bdf6543cec0af9df2306Etan Cohen    void updatePublish(int clientId, int discoverySessionId, in PublishConfig publishConfig);
52bd4bf35d22a04b0c5a39bdf6543cec0af9df2306Etan Cohen    void updateSubscribe(int clientId, int discoverySessionId, in SubscribeConfig subscribeConfig);
5327c18cbb5b77d4a282be6d9279d6c3a9a08572c3Etan Cohen    void sendMessage(int clientId, int discoverySessionId, int peerId, in byte[] message,
5427c18cbb5b77d4a282be6d9279d6c3a9a08572c3Etan Cohen        int messageId, int retryCount);
55bd4bf35d22a04b0c5a39bdf6543cec0af9df2306Etan Cohen    void terminateSession(int clientId, int discoverySessionId);
56bd4bf35d22a04b0c5a39bdf6543cec0af9df2306Etan Cohen    int startRanging(int clientId, int discoverySessionId, in RttManager.ParcelableRttParams parms);
5720d329b08df7d1a94e6caee781f09e812a79c913Etan Cohen}
58