summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Hamilton <jham@android.com>2011-01-26 16:57:49 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-01-26 16:57:49 -0800
commitfa378cddf30b0b50c48ee332c3f5c3bdb82baa32 (patch)
treea252755540976c7722e895a669a6b1cfe89e2b54
parent85dd17355c7080ca89b299db5044eaeffb4ff315 (diff)
parent28745b4ee52ef4864f9bdaed1d5e1cb9ac849b15 (diff)
downloadandroid_development-fa378cddf30b0b50c48ee332c3f5c3bdb82baa32.tar.gz
android_development-fa378cddf30b0b50c48ee332c3f5c3bdb82baa32.tar.bz2
android_development-fa378cddf30b0b50c48ee332c3f5c3bdb82baa32.zip
am 28745b4e: am 509fbb4d: Sample code for foreground NDEF Push APIs.
* commit '28745b4ee52ef4864f9bdaed1d5e1cb9ac849b15': Sample code for foreground NDEF Push APIs.
-rw-r--r--samples/ApiDemos/AndroidManifest.xml7
-rw-r--r--samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundNdefPush.java86
2 files changed, 93 insertions, 0 deletions
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index 17b55ff3a..657d0dcf8 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -2470,6 +2470,13 @@
/>
</activity>
+ <activity android:name=".nfc.ForegroundNdefPush" android:label="NFC/ForegroundNdefPush">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.SAMPLE_CODE" />
+ </intent-filter>
+ </activity>
+
</application>
<instrumentation android:name=".app.LocalSampleInstrumentation"
diff --git a/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundNdefPush.java b/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundNdefPush.java
new file mode 100644
index 000000000..fe478ed1a
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundNdefPush.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.example.android.apis.nfc;
+
+import com.example.android.apis.R;
+
+import android.app.Activity;
+import android.nfc.NdefMessage;
+import android.nfc.NdefRecord;
+import android.nfc.NfcAdapter;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import java.nio.charset.Charset;
+import java.util.Locale;
+
+/**
+ * An example of how to use the NFC foreground NDEF push APIs.
+ */
+public class ForegroundNdefPush extends Activity {
+ private NfcAdapter mAdapter;
+ private TextView mText;
+ private NdefMessage mMessage;
+
+ public static NdefRecord newTextRecord(String text, Locale locale, boolean encodeInUtf8) {
+ byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII"));
+
+ Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16");
+ byte[] textBytes = text.getBytes(utfEncoding);
+
+ int utfBit = encodeInUtf8 ? 0 : (1 << 7);
+ char status = (char) (utfBit + langBytes.length);
+
+ byte[] data = new byte[1 + langBytes.length + textBytes.length];
+ data[0] = (byte) status;
+ System.arraycopy(langBytes, 0, data, 1, langBytes.length);
+ System.arraycopy(textBytes, 0, data, 1 + langBytes.length, textBytes.length);
+
+ return new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte[0], data);
+ }
+
+ @Override
+ public void onCreate(Bundle savedState) {
+ super.onCreate(savedState);
+
+ mAdapter = NfcAdapter.getDefaultAdapter(this);
+
+ setContentView(R.layout.foreground_dispatch);
+ mText = (TextView) findViewById(R.id.text);
+ if (mAdapter != null) {
+ mText.setText("Tap another Android phone with NFC to push 'NDEF Push Sample'");
+ } else {
+ mText.setText("This phone is not NFC enabled.");
+ }
+
+ // Create an NDEF message with some sample text
+ mMessage = new NdefMessage(
+ new NdefRecord[] { newTextRecord("NDEF Push Sample", Locale.ENGLISH, true)});
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (mAdapter != null) mAdapter.enableForegroundNdefPush(this, mMessage);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ if (mAdapter != null) mAdapter.disableForegroundNdefPush(this);
+ }
+}