Итак, я пытаюсь отправить информацию с одного телефона на другой через NFC, используя phonegap.Я хочу, чтобы любая информация, которую я посылаю из одного приложения, в какой-то момент сохранялась как переменная, чтобы я мог либо отображать ее, манипулировать ею и т. Д. У меня возникает проблема, что всякий раз, когда я пытаюсь отправить текст с одного телефона, онпросто открывает приложение, но не отображает текст, как следует.У меня есть пользовательский Mimetype и фильтр намерений, настроенный для запуска приложения на другом телефоне, поэтому я не считаю, что это является проблемой. Я думаю, что я могу неправильно использовать функцию addMimeTypeListener, но не уверен.Буду признателен за любую помощь в разъяснении моей проблемы.
Здесь я вызываю функцию addMimeTypeListener в функции deviceready:
deviceready: function () {
document.getElementById('checkbox').addEventListener('change', app.toggleCheckbox, false);
sample.addEventListener('click', app.showSampleData, false);
nfc.addNdefListener(
function() {
app.notifyUser("Found an NDEF formatted tag");
},
function() {
app.notifyUser("Success.");
},
function() {
app.notifyUser("Fail.");
}
);
nfc.addMimeTypeListener(
"text/shunt",
parseTag,
function() {
app.notifyUser("Success");
},
function() {
app.notifyUser("Fail");
}
);
},
Здесь можно вызвать функцию анализируемого тега
function parseTag(nfcEvent) {
var records = nfcEvent.tagData;
for (var i = 0; i < records.length; i++) {
var record = records[i],
p = document.createElement('p');
p.innerHTML = nfc.bytesToString(record.payload);
display.appendChild(p);
app.notifyUser(p);
}
А вот мой фильтр намерений только для справки
<application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<data android:mimeType="text/shunt" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
Я пытался следовать примерам chariotsolutions, чтобы понять, как это работает, но все еще не очень удачно.
Спасибо.
edit: @Michael Roland
Вот функция, с которой я отправляю данные через NFC.Эта функция вызывается из функции deviceready.Я знаю, что могу передавать информацию с одного устройства на другое с помощью NFC.Но когда приложение открыто на другом устройстве и отображает эту информацию в приложении, я пытаюсь заставить его работать.
shareMessage: function () {
var mimeType = 'text/shunt',
payload = 'test',
record = ndef.mimeMediaRecord(mimeType, nfc.stringToBytes(payload));
nfc.share([record]);
},