jdk/src/share/classes/javax/smartcardio/package.html
changeset 2 90ce3da70b43
child 5506 202f599c92aa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/javax/smartcardio/package.html	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,103 @@
+<!--
+ Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation.  Sun designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Sun in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ CA 95054 USA or visit www.sun.com if you need additional information or
+ have any questions.
+-->
+
+<html>
+<body>
+<h2>Java&#x2122; Smart Card I/O API</h2>
+
+This specification describes the Java Smart Card I/O API defined by
+<a href="http://jcp.org/en/jsr/detail?id=268">JSR 268</a>.
+
+It defines a Java API for communication with Smart Cards
+using ISO/IEC 7816-4 APDUs. It thereby allows Java applications to interact with
+applications running on the Smart Card, to store and retrieve data 
+on the card, etc.
+
+<p>
+The API is defined by classes in the package
+<code>javax.smartcardio</code>. They can be classified as follows:
+
+<dl>
+<dt>Classes describing the corresponding Smart Card structures 
+<dd>
+<a href="ATR.html">ATR</a>, 
+<a href="CommandAPDU.html">CommandAPDU</a>, 
+<a href="ResponseAPDU.html">ResponseAPDU</a>
+
+<p>
+<dt>Factory to obtain implementations
+<dd>
+<a href="TerminalFactory.html">TerminalFactory</a>
+
+<p>
+<dt>Main classes for card and terminal functions
+<dd>
+<a href="CardTerminals.html">CardTerminals</a>, 
+<a href="CardTerminal.html">CardTerminal</a>, 
+<a href="Card.html">Card</a>, 
+<a href="CardChannel.html">CardChannel</a>
+
+<p>
+<dt>Supporting permission and exception classes
+<dd>
+<a href="CardPermission.html">CardPermission</a>, 
+<a href="CardException.html">CardException</a>, 
+<a href="CardNotPresentException.html">CardNotPresentException</a>
+
+<p>
+<dt>Service provider interface, not accessed directly by applications 
+<dd>
+<a href="TerminalFactorySpi.html">TerminalFactorySpi</a>
+
+</dl>
+
+
+<h3>API Example</h3>
+
+A simple example of using the API is:
+<pre>
+	// show the list of available terminals
+	TerminalFactory factory = TerminalFactory.getDefault();
+	List&lt;CardTerminal&gt; terminals = factory.terminals().list();
+	System.out.println("Terminals: " + terminals);
+	// get the first terminal
+	CardTerminal terminal = terminals.get(0);
+	// establish a connection with the card
+	Card card = terminal.connect("T=0");
+	System.out.println("card: " + card);
+	CardChannel channel = card.getBasicChannel();
+	ResponseAPDU r = channel.transmit(new CommandAPDU(c1));
+	System.out.println("response: " + toString(r.getBytes()));
+	// disconnect
+	card.disconnect(false);
+</pre>
+
+<P>
+@since   1.6
+@author  Andreas Sterbenz
+@author  JSR 268 Expert Group
+
+</body>
+</html>