- Home /
AndroidJavaObject as array for NFC access
Hello, I want to access to the information of a NFC tag. For now, I can access the tag, but I don't know how to get the messages from the Intent because the return type is an array.
This is the example code from: http://developer.android.com/guide/topics/connectivity/nfc/nfc.html
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
And this is my code in javascript:
var mActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic.<AndroidJavaObject>("currentActivity");
var mIntent = mActivity.Call.<AndroidJavaObject>("getIntent");
var sAction = mIntent.Call.<String>("getAction");
if(sAction=="android.nfc.action.NDEF_DISCOVERED")
{
var mNdefMessage = mIntent.Call.<AndroidJavaObject>("getParcelableArrayExtra", "android.nfc.extra.NDEF_MESSAGES");
}
How can I get an array from an AndroidJavaObject call? Any idea?
Thanks in advance,
Joel
Answer by jsr2k1 · Dec 20, 2012 at 12:58 PM
Finally I rewrite it in c# and it works!
if(sAction=="android.nfc.action.NDEF_DISCOVERED")
{
AndroidJavaObject[] mNdefMessage = mIntent.Call<AndroidJavaObject[]>("getParcelableArrayExtra", "android.nfc.extra.NDEF_MESSAGES");
AndroidJavaObject[] mNdefRecord = mNdefMessage[0].Call<AndroidJavaObject[]>("getRecords");
byte[] payLoad = mNdefRecord[0].Call<byte[]>("getPayload");
string text = System.Text.Encoding.UTF8.GetString(payLoad);
}
Your answer
Follow this Question
Related Questions
AndroidJavaClass. Call returns null ptr. 1 Answer
What is the difference between AndroidJavaClass.Call and AndroidJavaObject.Call 2 Answers
NoSuchMethodError calling android method 2 Answers
Get Phone number of android mobile device - Android native code to Unity c# 3 Answers
Unity 4.x call android method??? 1 Answer