Merge "Add Secure NFC functionality" am: 3ffdb26aa8
am: c538141c6d
Change-Id: I5e1c1d44396099c841f09bfdd2ac956f01fd4ceb
This commit is contained in:
@@ -29085,6 +29085,7 @@ package android.nfc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final class NfcAdapter {
|
public final class NfcAdapter {
|
||||||
|
method public boolean deviceSupportsNfcSecure();
|
||||||
method public void disableForegroundDispatch(android.app.Activity);
|
method public void disableForegroundDispatch(android.app.Activity);
|
||||||
method @Deprecated public void disableForegroundNdefPush(android.app.Activity);
|
method @Deprecated public void disableForegroundNdefPush(android.app.Activity);
|
||||||
method public void disableReaderMode(android.app.Activity);
|
method public void disableReaderMode(android.app.Activity);
|
||||||
@@ -29097,6 +29098,7 @@ package android.nfc {
|
|||||||
method @Deprecated public boolean invokeBeam(android.app.Activity);
|
method @Deprecated public boolean invokeBeam(android.app.Activity);
|
||||||
method public boolean isEnabled();
|
method public boolean isEnabled();
|
||||||
method @Deprecated public boolean isNdefPushEnabled();
|
method @Deprecated public boolean isNdefPushEnabled();
|
||||||
|
method public boolean isNfcSecureEnabled();
|
||||||
method @Deprecated public void setBeamPushUris(android.net.Uri[], android.app.Activity);
|
method @Deprecated public void setBeamPushUris(android.net.Uri[], android.app.Activity);
|
||||||
method @Deprecated public void setBeamPushUrisCallback(android.nfc.NfcAdapter.CreateBeamUrisCallback, android.app.Activity);
|
method @Deprecated public void setBeamPushUrisCallback(android.nfc.NfcAdapter.CreateBeamUrisCallback, android.app.Activity);
|
||||||
method @Deprecated public void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, android.app.Activity...);
|
method @Deprecated public void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, android.app.Activity...);
|
||||||
|
|||||||
@@ -3925,6 +3925,7 @@ package android.nfc {
|
|||||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enableNdefPush();
|
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enableNdefPush();
|
||||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler);
|
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler);
|
||||||
method public void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, int);
|
method public void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, int);
|
||||||
|
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setNfcSecure(boolean);
|
||||||
field public static final int FLAG_NDEF_PUSH_NO_CONFIRM = 1; // 0x1
|
field public static final int FLAG_NDEF_PUSH_NO_CONFIRM = 1; // 0x1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,4 +68,8 @@ interface INfcAdapter
|
|||||||
void removeNfcUnlockHandler(INfcUnlockHandler unlockHandler);
|
void removeNfcUnlockHandler(INfcUnlockHandler unlockHandler);
|
||||||
|
|
||||||
void verifyNfcPermission();
|
void verifyNfcPermission();
|
||||||
|
boolean isNfcSecureEnabled();
|
||||||
|
boolean deviceSupportsNfcSecure();
|
||||||
|
boolean setNfcSecure(boolean enable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1701,6 +1701,63 @@ public final class NfcAdapter {
|
|||||||
mNfcActivityManager.setOnNdefPushCompleteCallback(activity, null);
|
mNfcActivityManager.setOnNdefPushCompleteCallback(activity, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets Secure NFC feature.
|
||||||
|
* <p>This API is for the Settings application.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
@RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS)
|
||||||
|
public boolean setNfcSecure(boolean enable) {
|
||||||
|
if (!sHasNfcFeature) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return sService.setNfcSecure(enable);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
attemptDeadServiceRecovery(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the device supports Secure NFC functionality.
|
||||||
|
*
|
||||||
|
* @return True if device supports Secure NFC, false otherwise
|
||||||
|
* @throws UnsupportedOperationException if FEATURE_NFC is unavailable.
|
||||||
|
*/
|
||||||
|
public boolean deviceSupportsNfcSecure() {
|
||||||
|
if (!sHasNfcFeature) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return sService.deviceSupportsNfcSecure();
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
attemptDeadServiceRecovery(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks Secure NFC feature is enabled.
|
||||||
|
*
|
||||||
|
* @return True if device supports Secure NFC is enabled, false otherwise
|
||||||
|
* @throws UnsupportedOperationException if FEATURE_NFC is unavailable.
|
||||||
|
* @throws UnsupportedOperationException if device doesn't support
|
||||||
|
* Secure NFC functionality. {@link #deviceSupportsNfcSecure}
|
||||||
|
*/
|
||||||
|
public boolean isNfcSecureEnabled() {
|
||||||
|
if (!sHasNfcFeature) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return sService.isNfcSecureEnabled();
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
attemptDeadServiceRecovery(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable NDEF Push feature.
|
* Enable NDEF Push feature.
|
||||||
* <p>This API is for the Settings application.
|
* <p>This API is for the Settings application.
|
||||||
|
|||||||
Reference in New Issue
Block a user