diff options
author | Ben Dodson <bjdodson@google.com> | 2011-06-17 10:30:49 -0700 |
---|---|---|
committer | Ben Dodson <bjdodson@google.com> | 2011-06-17 15:37:32 -0700 |
commit | 3da3a4582c0793f59a1fd897a992e5e4fd57b6ca (patch) | |
tree | a95455e783e095678498b90ec39abdfcc520f896 /core/java/android/nfc | |
parent | 542f2409d9be9211dcb8cdfe2f863c22ff6cf26f (diff) | |
download | frameworks_base-3da3a4582c0793f59a1fd897a992e5e4fd57b6ca.zip frameworks_base-3da3a4582c0793f59a1fd897a992e5e4fd57b6ca.tar.gz frameworks_base-3da3a4582c0793f59a1fd897a992e5e4fd57b6ca.tar.bz2 |
Parser for uri records
Change-Id: I4b71ba7938aa83a1c6344e3da72a9495bc1e9a16
Diffstat (limited to 'core/java/android/nfc')
-rw-r--r-- | core/java/android/nfc/NdefRecord.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/core/java/android/nfc/NdefRecord.java b/core/java/android/nfc/NdefRecord.java index 3fd26dd..5ade9eb 100644 --- a/core/java/android/nfc/NdefRecord.java +++ b/core/java/android/nfc/NdefRecord.java @@ -332,6 +332,28 @@ public final class NdefRecord implements Parcelable { return Uri.parse(new String(fullUri, Charsets.UTF_8)); } + /** + * Creates an NDEF record of well known type URI. + * TODO: Make a public API + * @hide + */ + public static NdefRecord createUri(Uri uri) { + String uriString = uri.toString(); + byte prefix = 0x0; + for (int i = 1; i < URI_PREFIX_MAP.length; i++) { + if (uriString.startsWith(URI_PREFIX_MAP[i])) { + prefix = (byte) i; + uriString = uriString.substring(URI_PREFIX_MAP[i].length()); + break; + } + } + byte[] uriBytes = uriString.getBytes(Charsets.UTF_8); + byte[] recordBytes = new byte[uriBytes.length + 1]; + recordBytes[0] = prefix; + System.arraycopy(uriBytes, 0, recordBytes, 1, uriBytes.length); + return new NdefRecord(TNF_WELL_KNOWN, RTD_URI, new byte[0], recordBytes); + } + private static byte[] concat(byte[]... arrays) { int length = 0; for (byte[] array : arrays) { |