1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.nfc;
18 
19 import android.app.PendingIntent;
20 import android.content.IntentFilter;
21 import android.nfc.BeamShareData;
22 import android.nfc.NdefMessage;
23 import android.nfc.Tag;
24 import android.nfc.TechListParcel;
25 import android.nfc.IAppCallback;
26 import android.nfc.INfcAdapterExtras;
27 import android.nfc.INfcTag;
28 import android.nfc.INfcCardEmulation;
29 import android.nfc.INfcFCardEmulation;
30 import android.nfc.INfcUnlockHandler;
31 import android.nfc.ITagRemovedCallback;
32 import android.nfc.INfcDta;
33 import android.os.Bundle;
34 
35 /**
36  * @hide
37  */
38 interface INfcAdapter
39 {
getNfcTagInterface()40     INfcTag getNfcTagInterface();
getNfcCardEmulationInterface()41     INfcCardEmulation getNfcCardEmulationInterface();
getNfcFCardEmulationInterface()42     INfcFCardEmulation getNfcFCardEmulationInterface();
getNfcAdapterExtrasInterface(in String pkg)43     INfcAdapterExtras getNfcAdapterExtrasInterface(in String pkg);
getNfcDtaInterface(in String pkg)44     INfcDta getNfcDtaInterface(in String pkg);
getState()45     int getState();
disable(boolean saveState)46     boolean disable(boolean saveState);
enable()47     boolean enable();
enableNdefPush()48     boolean enableNdefPush();
disableNdefPush()49     boolean disableNdefPush();
isNdefPushEnabled()50     boolean isNdefPushEnabled();
pausePolling(int timeoutInMs)51     void pausePolling(int timeoutInMs);
resumePolling()52     void resumePolling();
53 
setForegroundDispatch(in PendingIntent intent, in IntentFilter[] filters, in TechListParcel techLists)54     void setForegroundDispatch(in PendingIntent intent,
55             in IntentFilter[] filters, in TechListParcel techLists);
setAppCallback(in IAppCallback callback)56     void setAppCallback(in IAppCallback callback);
invokeBeam()57     oneway void invokeBeam();
invokeBeamInternal(in BeamShareData shareData)58     oneway void invokeBeamInternal(in BeamShareData shareData);
59 
ignore(int nativeHandle, int debounceMs, ITagRemovedCallback callback)60     boolean ignore(int nativeHandle, int debounceMs, ITagRemovedCallback callback);
61 
dispatch(in Tag tag)62     void dispatch(in Tag tag);
63 
setReaderMode(IBinder b, IAppCallback callback, int flags, in Bundle extras)64     void setReaderMode (IBinder b, IAppCallback callback, int flags, in Bundle extras);
setP2pModes(int initatorModes, int targetModes)65     void setP2pModes(int initatorModes, int targetModes);
66 
addNfcUnlockHandler(INfcUnlockHandler unlockHandler, in int[] techList)67     void addNfcUnlockHandler(INfcUnlockHandler unlockHandler, in int[] techList);
removeNfcUnlockHandler(INfcUnlockHandler unlockHandler)68     void removeNfcUnlockHandler(INfcUnlockHandler unlockHandler);
69 
verifyNfcPermission()70     void verifyNfcPermission();
isNfcSecureEnabled()71     boolean isNfcSecureEnabled();
deviceSupportsNfcSecure()72     boolean deviceSupportsNfcSecure();
setNfcSecure(boolean enable)73     boolean setNfcSecure(boolean enable);
74 
75 }
76