1f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton/*
2f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * Copyright (C) 2011 The Android Open Source Project
3f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton *
4f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * Licensed under the Apache License, Version 2.0 (the "License");
5f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * you may not use this file except in compliance with the License.
6f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * You may obtain a copy of the License at
7f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton *
8f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton *      http://www.apache.org/licenses/LICENSE-2.0
9f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton *
10f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * Unless required by applicable law or agreed to in writing, software
11f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * distributed under the License is distributed on an "AS IS" BASIS,
12f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * See the License for the specific language governing permissions and
14f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton * limitations under the License.
15f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton */
16f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
17f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamiltonpackage com.android.nfc;
18f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
19a30388eb7ddeabe1c9b85d49a65b82aac6a845caAndres Moralesimport android.annotation.Nullable;
20f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamiltonimport android.nfc.NdefMessage;
21f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamiltonimport android.os.Bundle;
22f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
234a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamiltonimport java.io.IOException;
244a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
25f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamiltonpublic interface DeviceHost {
26f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public interface DeviceHostListener {
27f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public void onRemoteEndpointDiscovered(TagEndpoint tag);
28f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
29f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        /**
309f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen         */
319f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen        public void onHostCardEmulationActivated();
329f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen        public void onHostCardEmulationData(byte[] data);
339f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen        public void onHostCardEmulationDeactivated();
349f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen
359f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen        /**
36f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         * Notifies P2P Device detected, to activate LLCP link
37f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         */
38f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public void onLlcpLinkActivated(NfcDepEndpoint device);
39f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
40f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        /**
41f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         * Notifies P2P Device detected, to activate LLCP link
42f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         */
43f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public void onLlcpLinkDeactivated(NfcDepEndpoint device);
44f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
4557a44d07a3de327e8cdbbcd622118aa517313dbeMartijn Coenen        public void onLlcpFirstPacketReceived(NfcDepEndpoint device);
46c19c065b6d0e1a088780c4dca27a1404d5926765Martijn Coenen
47c19c065b6d0e1a088780c4dca27a1404d5926765Martijn Coenen        public void onRemoteFieldActivated();
48c19c065b6d0e1a088780c4dca27a1404d5926765Martijn Coenen
49c19c065b6d0e1a088780c4dca27a1404d5926765Martijn Coenen        public void onRemoteFieldDeactivated();
50f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    }
51f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
52f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public interface TagEndpoint {
53f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean connect(int technology);
54f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean reconnect();
55f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean disconnect();
56f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
57f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean presenceCheck();
58f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean isPresent();
59a30388eb7ddeabe1c9b85d49a65b82aac6a845caAndres Morales        void startPresenceChecking(int presenceCheckDelay,
60a30388eb7ddeabe1c9b85d49a65b82aac6a845caAndres Morales                                   @Nullable TagDisconnectedCallback callback);
61f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
62f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        int[] getTechList();
63f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        void removeTechnology(int tech); // TODO remove this one
64f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        Bundle[] getTechExtras();
65f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        byte[] getUid();
66f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        int getHandle();
67f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
68f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        byte[] transceive(byte[] data, boolean raw, int[] returnCode);
69f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
70f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean checkNdef(int[] out);
71f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        byte[] readNdef();
72f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean writeNdef(byte[] data);
73391cfe2479eca2080c14d1832599ad51cafae918Nick Pelly        NdefMessage findAndReadNdef();
74f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean formatNdef(byte[] key);
75f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean isNdefFormatable();
76f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        boolean makeReadOnly();
77bf6e5d1655d5ad524a8ec007413c7011ed969df8Martijn Coenen
78bf6e5d1655d5ad524a8ec007413c7011ed969df8Martijn Coenen        int getConnectedTechnology();
79f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    }
80f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
81a30388eb7ddeabe1c9b85d49a65b82aac6a845caAndres Morales    public interface TagDisconnectedCallback {
82a30388eb7ddeabe1c9b85d49a65b82aac6a845caAndres Morales        void onTagDisconnected(long handle);
83a30388eb7ddeabe1c9b85d49a65b82aac6a845caAndres Morales    }
84a30388eb7ddeabe1c9b85d49a65b82aac6a845caAndres Morales
85f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public interface NfceeEndpoint {
86f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        // TODO flesh out multi-EE and use this
87f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    }
88f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
89f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public interface NfcDepEndpoint {
90f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
91f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        /**
92f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         * Peer-to-Peer Target
93f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         */
94f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public static final short MODE_P2P_TARGET = 0x00;
95f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        /**
96f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         * Peer-to-Peer Initiator
97f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         */
98f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public static final short MODE_P2P_INITIATOR = 0x01;
99f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        /**
100f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         * Invalid target mode
101f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton         */
102f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public static final short MODE_INVALID = 0xff;
103f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
104f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public byte[] receive();
105f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
106f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public boolean send(byte[] data);
107f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
108f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public boolean connect();
109f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
110f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public boolean disconnect();
111f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
112f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public byte[] transceive(byte[] data);
113f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
114f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public int getHandle();
115f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
116f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public int getMode();
117f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
118f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton        public byte[] getGeneralBytes();
1192daeeee63456a515693980372908234e1fa14ba5Martijn Coenen
1202daeeee63456a515693980372908234e1fa14ba5Martijn Coenen        public byte getLlcpVersion();
121f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    }
122f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
1234a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton    public interface LlcpSocket {
1244a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public void connectToSap(int sap) throws IOException;
1254a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1264a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public void connectToService(String serviceName) throws IOException;
1274a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1284a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public void close() throws IOException;
1294a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1304a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public void send(byte[] data) throws IOException;
1314a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1324a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public int receive(byte[] recvBuff) throws IOException;
1334a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1344a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public int getRemoteMiu();
1354a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1364a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public int getRemoteRw();
1374a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1384a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public int getLocalSap();
1394a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1404a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public int getLocalMiu();
1414a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1424a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public int getLocalRw();
1434a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton    }
1444a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1454a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton    public interface LlcpServerSocket {
1464a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public LlcpSocket accept() throws IOException, LlcpException;
1474a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
1484a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton        public void close() throws IOException;
1494a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton    }
1504a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
151e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen    public interface LlcpConnectionlessSocket {
152e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen        public int getLinkMiu();
153e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen
154e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen        public int getSap();
155e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen
156e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen        public void send(int sap, byte[] data) throws IOException;
157e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen
158e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen        public LlcpPacket receive() throws IOException;
159e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen
160e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen        public void close() throws IOException;
161e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen    }
162e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen
1630fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton    /**
1640fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton     * Called at boot if NFC is disabled to give the device host an opportunity
1650fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton     * to check the firmware version to see if it needs updating. Normally the firmware version
166d2604c0544f7bc26e5b2407f0215cccfffedae2cAndres Morales     * is checked during {@link #initialize(boolean enableScreenOffSuspend)},
167d2604c0544f7bc26e5b2407f0215cccfffedae2cAndres Morales     * but the firmware may need to be updated after an OTA update.
1680fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton     *
1690fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton     * <p>This is called from a thread
1700fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton     * that may block for long periods of time during the update process.
1710fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton     */
1720fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton    public void checkFirmware();
1730fe7049a3224aa7b29cc980be07387e17607b0deJeff Hamilton
174304a6342ee7e5620d3b50d988755c035f1686dc2Martijn Coenen    public boolean initialize();
175f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
176f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public boolean deinitialize();
177f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
178525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project    public String getName();
179525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project
1800799bcbe2469aa6a88c6cbdf0cdee5b50e1994f0Andres Morales    public void enableDiscovery(NfcDiscoveryParameters params, boolean restart);
181f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
182a1e95d30dbe8dad0a8bb333b4ca17c009fc34e2fAndres Morales    public void disableDiscovery();
183f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
1849f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen    public boolean sendRawFrame(byte[] data);
1859f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen
1869f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen    public boolean routeAid(byte[] aid, int route);
1879f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen
1889f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen    public boolean unrouteAid(byte[] aid);
1899f8f6cf9c58405ecafe2d425801e6c14088db8c7Martijn Coenen
190f5c979220fadb2c3ac0bca09e16d0d281ed20eb2Martijn Coenen    public boolean commitRouting();
191f5c979220fadb2c3ac0bca09e16d0d281ed20eb2Martijn Coenen
1923b82eef50f734cab061330f55de8b8bf5396f24bMartijn Coenen    public LlcpConnectionlessSocket createLlcpConnectionlessSocket(int nSap, String sn)
193e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen            throws LlcpException;
194e008eba3b51c5303d52bf3e9e989dfd03b18435aMartijn Coenen
1954a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton    public LlcpServerSocket createLlcpServerSocket(int nSap, String sn, int miu,
1964a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton            int rw, int linearBufferLength) throws LlcpException;
197f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
1984a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton    public LlcpSocket createLlcpSocket(int sap, int miu, int rw,
1994a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton            int linearBufferLength) throws LlcpException;
200f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
201f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public boolean doCheckLlcp();
202f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
203f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public boolean doActivateLlcp();
204f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
205f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public void resetTimeouts();
206f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton
207f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton    public boolean setTimeout(int technology, int timeout);
208358d8b6ad611aba11e69a3b1dd9d132dbc9a7605Martijn Coenen
209358d8b6ad611aba11e69a3b1dd9d132dbc9a7605Martijn Coenen    public int getTimeout(int technology);
2104a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton
2114a61d3b45e81c0070538f94747a70a49c78f12faJeff Hamilton    public void doAbort();
212bf6e5d1655d5ad524a8ec007413c7011ed969df8Martijn Coenen
213bf6e5d1655d5ad524a8ec007413c7011ed969df8Martijn Coenen    boolean canMakeReadOnly(int technology);
214bf6e5d1655d5ad524a8ec007413c7011ed969df8Martijn Coenen
215bf6e5d1655d5ad524a8ec007413c7011ed969df8Martijn Coenen    int getMaxTransceiveLength(int technology);
21656f2a7bc39a14487f01cbf2d131ba3cde4126f2dMartijn Coenen
2170c39284106d29e8852197d163dcc95c01da29f0dMartijn Coenen    void setP2pInitiatorModes(int modes);
2180c39284106d29e8852197d163dcc95c01da29f0dMartijn Coenen
2190c39284106d29e8852197d163dcc95c01da29f0dMartijn Coenen    void setP2pTargetModes(int modes);
2200c39284106d29e8852197d163dcc95c01da29f0dMartijn Coenen
221ba15143ff54f5078f9b2cef5804525d387c52c72Martijn Coenen    boolean getExtendedLengthApdusSupported();
222ba15143ff54f5078f9b2cef5804525d387c52c72Martijn Coenen
223525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project    int getDefaultLlcpMiu();
224525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project
225525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project    int getDefaultLlcpRwSize();
226525c260303268a83da4c3413b953d13c9084e834The Android Open Source Project
22756f2a7bc39a14487f01cbf2d131ba3cde4126f2dMartijn Coenen    String dump();
228c4e4277a71c70e96198cb760676ad3b40f9e0e3dMartijn Coenen
229d2604c0544f7bc26e5b2407f0215cccfffedae2cAndres Morales    boolean enableScreenOffSuspend();
230d2604c0544f7bc26e5b2407f0215cccfffedae2cAndres Morales
231d2604c0544f7bc26e5b2407f0215cccfffedae2cAndres Morales    boolean disableScreenOffSuspend();
232f6c56a2191d58e3f9f68e3e7d94908b04b9b66ffJeff Hamilton}
233