am e47150e9: Fix up NFC permissions.

Merge commit 'e47150e933e6f610546f57183477f324566e521e' into gingerbread-plus-aosp

* commit 'e47150e933e6f610546f57183477f324566e521e':
  Fix up NFC permissions.
This commit is contained in:
Nick Pelly
2010-10-18 10:26:12 -07:00
committed by Android Git Automerger
6 changed files with 44 additions and 66 deletions

View File

@ -705,6 +705,17 @@
visibility="public" visibility="public"
> >
</field> </field>
<field name="NFC"
type="java.lang.String"
transient="false"
volatile="false"
value="&quot;android.permission.NFC&quot;"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="PERSISTENT_ACTIVITY" <field name="PERSISTENT_ACTIVITY"
type="java.lang.String" type="java.lang.String"
transient="false" transient="false"

View File

@ -25,6 +25,9 @@ import android.util.Log;
* A connection to an NDEF target on an {@link NdefTag}. * A connection to an NDEF target on an {@link NdefTag}.
* <p>You can acquire this kind of connection with {@link NfcAdapter#createNdefTagConnection * <p>You can acquire this kind of connection with {@link NfcAdapter#createNdefTagConnection
* createNdefTagConnection()}. Use the connection to read or write {@link NdefMessage}s. * createNdefTagConnection()}. Use the connection to read or write {@link NdefMessage}s.
* <p class="note"><strong>Note:</strong>
* Use of this class requires the {@link android.Manifest.permission#NFC}
* permission.
*/ */
public class NdefTagConnection extends RawTagConnection { public class NdefTagConnection extends RawTagConnection {
public static final int NDEF_MODE_READ_ONCE = 1; public static final int NDEF_MODE_READ_ONCE = 1;
@ -69,7 +72,7 @@ public class NdefTagConnection extends RawTagConnection {
* This will always return the most up to date payload, and can block. * This will always return the most up to date payload, and can block.
* It can be canceled with {@link RawTagConnection#close}. * It can be canceled with {@link RawTagConnection#close}.
* Most NDEF tags will contain just one NDEF message. * Most NDEF tags will contain just one NDEF message.
* <p> * <p>Requires {@link android.Manifest.permission#NFC} permission.
* @throws FormatException if the tag is not NDEF formatted * @throws FormatException if the tag is not NDEF formatted
* @throws IOException if the target is lost or connection closed * @throws IOException if the target is lost or connection closed
* @throws FormatException * @throws FormatException
@ -109,8 +112,9 @@ public class NdefTagConnection extends RawTagConnection {
* message. Use {@link NdefRecord} to write several records to a single tag. * message. Use {@link NdefRecord} to write several records to a single tag.
* For write-many tags, use {@link #makeReadOnly} after this method to attempt * For write-many tags, use {@link #makeReadOnly} after this method to attempt
* to prevent further modification. For write-once tags this is not * to prevent further modification. For write-once tags this is not
* neccesary. * necessary.
* Requires NFC_WRITE permission. * <p>Requires {@link android.Manifest.permission#NFC} permission.
*
* @throws FormatException if the tag is not suitable for NDEF messages * @throws FormatException if the tag is not suitable for NDEF messages
* @throws IOException if the target is lost or connection closed or the * @throws IOException if the target is lost or connection closed or the
* write failed * write failed
@ -138,7 +142,7 @@ public class NdefTagConnection extends RawTagConnection {
* Attempts to make the NDEF data in this tag read-only. * Attempts to make the NDEF data in this tag read-only.
* This method will block until the action is complete. It can be canceled * This method will block until the action is complete. It can be canceled
* with {@link RawTagConnection#close}. * with {@link RawTagConnection#close}.
* Requires NFC_WRITE permission. * <p>Requires {@link android.Manifest.permission#NFC} permission.
* @return true if the tag is now read-only * @return true if the tag is now read-only
* @throws IOException if the target is lost, or connection closed * @throws IOException if the target is lost, or connection closed
*/ */
@ -164,7 +168,8 @@ public class NdefTagConnection extends RawTagConnection {
/** /**
* Read/Write mode hint. * Read/Write mode hint.
* Provides a hint if further reads or writes are likely to suceed. * Provides a hint if further reads or writes are likely to succeed.
* <p>Requires {@link android.Manifest.permission#NFC} permission.
* @return one of NDEF_MODE * @return one of NDEF_MODE
* @throws IOException if the target is lost or connection closed * @throws IOException if the target is lost or connection closed
*/ */

View File

@ -22,7 +22,6 @@ import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.util.Log; import android.util.Log;
//TODO(npelly) permission {@link android.Manifest.permission#NFC_MODIFY}
/** /**
* Represents the device's local NFC adapter. * Represents the device's local NFC adapter.
* <p> * <p>
@ -35,7 +34,7 @@ import android.util.Log;
* to NFC Tags. * to NFC Tags.
* <p class="note"> * <p class="note">
* <strong>Note:</strong> Some methods require the * <strong>Note:</strong> Some methods require the
* TODO permission. * {@link android.Manifest.permission#NFC} permission.
*/ */
public final class NfcAdapter { public final class NfcAdapter {
/** /**
@ -231,8 +230,7 @@ public final class NfcAdapter {
* <li>provide the NDEF message on over LLCP to peer NFC adapters * <li>provide the NDEF message on over LLCP to peer NFC adapters
* </ul> * </ul>
* The NDEF message is preserved across reboot. * The NDEF message is preserved across reboot.
* <p> * <p>Requires {@link android.Manifest.permission#NFC} permission.
* Requires NFC_WRITE permission
* *
* @param message NDEF message to make public * @param message NDEF message to make public
*/ */
@ -246,8 +244,7 @@ public final class NfcAdapter {
/** /**
* Get the NDEF Message that this adapter appears as to Tag readers. * Get the NDEF Message that this adapter appears as to Tag readers.
* <p> * <p>Requires {@link android.Manifest.permission#NFC} permission.
* Requires NFC_WRITE permission
* *
* @return NDEF Message that is publicly readable * @return NDEF Message that is publicly readable
*/ */
@ -262,6 +259,7 @@ public final class NfcAdapter {
/** /**
* Create a raw tag connection to the default Target * Create a raw tag connection to the default Target
* <p>Requires {@link android.Manifest.permission#NFC} permission.
*/ */
public RawTagConnection createRawTagConnection(Tag tag) { public RawTagConnection createRawTagConnection(Tag tag) {
try { try {
@ -274,6 +272,7 @@ public final class NfcAdapter {
/** /**
* Create a raw tag connection to the specified Target * Create a raw tag connection to the specified Target
* <p>Requires {@link android.Manifest.permission#NFC} permission.
*/ */
public RawTagConnection createRawTagConnection(Tag tag, String target) { public RawTagConnection createRawTagConnection(Tag tag, String target) {
try { try {
@ -286,6 +285,7 @@ public final class NfcAdapter {
/** /**
* Create an NDEF tag connection to the default Target * Create an NDEF tag connection to the default Target
* <p>Requires {@link android.Manifest.permission#NFC} permission.
*/ */
public NdefTagConnection createNdefTagConnection(NdefTag tag) { public NdefTagConnection createNdefTagConnection(NdefTag tag) {
try { try {
@ -298,6 +298,7 @@ public final class NfcAdapter {
/** /**
* Create an NDEF tag connection to the specified Target * Create an NDEF tag connection to the specified Target
* <p>Requires {@link android.Manifest.permission#NFC} permission.
*/ */
public NdefTagConnection createNdefTagConnection(NdefTag tag, String target) { public NdefTagConnection createNdefTagConnection(NdefTag tag, String target) {
try { try {

View File

@ -30,7 +30,7 @@ import android.util.Log;
* Applications must implement their own protocol stack on top of {@link #transceive transceive()}. * Applications must implement their own protocol stack on top of {@link #transceive transceive()}.
* *
* <p class="note"><strong>Note:</strong> * <p class="note"><strong>Note:</strong>
* Most methods require the TODO * Use of this class requires the {@link android.Manifest.permission#NFC}
* permission. * permission.
*/ */
public class RawTagConnection { public class RawTagConnection {
@ -71,11 +71,15 @@ public class RawTagConnection {
/** /**
* Get the {@link Tag} this connection is associated with. * Get the {@link Tag} this connection is associated with.
* <p>Requires {@link android.Manifest.permission#NFC} permission.
*/ */
public Tag getTag() { public Tag getTag() {
return mTag; return mTag;
} }
/**
* <p>Requires {@link android.Manifest.permission#NFC} permission.
*/
public String getTagTarget() { public String getTagTarget() {
return mSelectedTarget; return mSelectedTarget;
} }
@ -84,7 +88,7 @@ public class RawTagConnection {
* Helper to indicate if {@link #transceive transceive()} calls might succeed. * Helper to indicate if {@link #transceive transceive()} calls might succeed.
* <p> * <p>
* Does not cause RF activity, and does not block. * Does not cause RF activity, and does not block.
* <p> * <p>Requires {@link android.Manifest.permission#NFC} permission.
* @return true if {@link #connect} has completed successfully and the {@link Tag} is believed * @return true if {@link #connect} has completed successfully and the {@link Tag} is believed
* to be within range. Applications must still handle {@link java.io.IOException} * to be within range. Applications must still handle {@link java.io.IOException}
* while using {@link #transceive transceive()}, in case connection is lost after this method * while using {@link #transceive transceive()}, in case connection is lost after this method
@ -104,7 +108,7 @@ public class RawTagConnection {
* <p> * <p>
* {@link #close} can be called from another thread to cancel this connection * {@link #close} can be called from another thread to cancel this connection
* attempt. * attempt.
* * <p>Requires {@link android.Manifest.permission#NFC} permission.
* @throws IOException if the target is lost, or connect canceled * @throws IOException if the target is lost, or connect canceled
*/ */
public void connect() throws IOException { public void connect() throws IOException {
@ -120,6 +124,7 @@ public class RawTagConnection {
* <p> * <p>
* Once this method is called, this object cannot be re-used and should be discarded. Further * Once this method is called, this object cannot be re-used and should be discarded. Further
* calls to {@link #transceive transceive()} or {@link #connect} will fail. * calls to {@link #transceive transceive()} or {@link #connect} will fail.
* <p>Requires {@link android.Manifest.permission#NFC} permission.
*/ */
public void close() { public void close() {
mIsConnected = false; mIsConnected = false;
@ -135,8 +140,7 @@ public class RawTagConnection {
* <p> * <p>
* This method will block until the response is received. It can be canceled * This method will block until the response is received. It can be canceled
* with {@link #close}. * with {@link #close}.
* <p> * <p>Requires {@link android.Manifest.permission#NFC} permission.
* Requires NFC_WRITE permission.
* *
* @param data bytes to send * @param data bytes to send
* @return bytes received in response * @return bytes received in response

View File

@ -341,29 +341,12 @@
android:description="@string/permdesc_bluetooth" android:description="@string/permdesc_bluetooth"
android:label="@string/permlab_bluetooth" /> android:label="@string/permlab_bluetooth" />
<!-- Allows applications to access remote NFC devices <!-- Allows applications to directly communicate over NFC -->
@hide --> <permission android:name="android.permission.NFC"
<permission android:name="com.trustedlogic.trustednfc.permission.NFC_RAW"
android:permissionGroup="android.permission-group.NETWORK" android:permissionGroup="android.permission-group.NETWORK"
android:protectionLevel="dangerous" android:protectionLevel="dangerous"
android:description="@string/permdesc_nfcRaw" android:description="@string/permdesc_nfc"
android:label="@string/permlab_nfcRaw" /> android:label="@string/permlab_nfc" />
<!-- Allows applications to be notified of remote NFC devices
@hide -->
<permission android:name="com.trustedlogic.trustednfc.permission.NFC_NOTIFY"
android:permissionGroup="android.permission-group.NETWORK"
android:protectionLevel="dangerous"
android:description="@string/permdesc_nfcNotify"
android:label="@string/permlab_nfcNotify" />
<!-- Allows applications to be notified of remote NFC LLCP devices
@hide -->
<permission android:name="com.trustedlogic.trustednfc.permission.NFC_LLCP"
android:permissionGroup="android.permission-group.NETWORK"
android:protectionLevel="dangerous"
android:description="@string/permdesc_nfcLlcp"
android:label="@string/permlab_nfcLlcp" />
<!-- Allows an application to use SIP service --> <!-- Allows an application to use SIP service -->
<permission android:name="android.permission.USE_SIP" <permission android:name="android.permission.USE_SIP"
@ -875,14 +858,6 @@
android:description="@string/permdesc_bluetoothAdmin" android:description="@string/permdesc_bluetoothAdmin"
android:label="@string/permlab_bluetoothAdmin" /> android:label="@string/permlab_bluetoothAdmin" />
<!-- Allows applications to change NFC connectivity settings
@hide -->
<permission android:name="com.trustedlogic.trustednfc.permission.NFC_ADMIN"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="dangerous"
android:description="@string/permdesc_nfcAdmin"
android:label="@string/permlab_nfcAdmin" />
<!-- Allows an application to clear the caches of all installed <!-- Allows an application to clear the caches of all installed
applications on the device. --> applications on the device. -->
<permission android:name="android.permission.CLEAR_APP_CACHE" <permission android:name="android.permission.CLEAR_APP_CACHE"

View File

@ -1153,28 +1153,10 @@
connections with paired devices.</string> connections with paired devices.</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_nfcAdmin">NFC administration</string> <string name="permlab_nfc">control Near Field Communication</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permdesc_nfcAdmin">Allows an application to configure <string name="permdesc_nfc">Allows an application to communicate
the local NFC phone.</string> with Near Field Communication (NFC) tags, cards, and readers.</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_nfcRaw">NFC full access to remote device</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permdesc_nfcRaw">Allows an application to access
remote NFC devices.</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_nfcNotify">NFC notification from remote device</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permdesc_nfcNotify">Allows an application to be notified
of operations related to remote NFC devices.</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_nfcLlcp">NFC notification from remote LLCP device</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permdesc_nfcLlcp">Allows an application to be notified
of LLCP operations related to remote NFC devices.</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_disableKeyguard">disable keylock</string> <string name="permlab_disableKeyguard">disable keylock</string>