Guten Morgen
ich bin seid Stunden am Verzweifeln! Hoffe mir kann wer helfen.
Ich möchte gerne das meine App in der Lage ist Text zu beamen. Habe dafür ein kleines Testprojekt gemacht
und es hat alles wunderbar geklappt. Nun wo ich es in meiner "Richtigen" App einbauen möchte, gelingt es mir nicht.
Immer wenn ich beame, öffnet sich nur "Neuer Tag erfasst"application/eu.freemoser.mydebts2go. Ich vermute, dass es
am Intent-Filter liegen muss? Finde das Problem aber nicht und google, konnte mir auch nicht weiter helfen.
Manifest:
ZitatAlles anzeigen
<activity
android:name="eu.freemoser.myDebts2go.Beam"
android:theme="@android:style/Theme.DeviceDefault.Wallpaper.NoTitleBar">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/eu.freemoser.myDebts2go" />
</intent-filter>
</activity>
Beam Activity (Empfänger)
ZitatAlles anzeigen@Override
protected void onResume() {
super.onResume();
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
processIntent(getIntent());
}
}
void processIntent(Intent intent) {
myDb = new DBAdapter(this);
myDb.open();
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
NfcAdapter.EXTRA_NDEF_MESSAGES);
// only one message sent during the beam
NdefMessage msg = (NdefMessage) rawMsgs[0];
// record 0 contains the MIME type, record 1 is the AAR, if present
String temp = new String(msg.getRecords()[0].getPayload());
String[] arrrayTemp = temp.split("//");
...
}
Und hier "Sender"
ZitatAlles anzeigen
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
Time time = new Time();
time.setToNow();
String text = myBetrag + "//" + myTitle + "//" + myContactName + "//" + myStatus + "//" + myDebtDate + "//" + myCreateDate + "//" + myRemamberDate + "//" + myNote;
NdefMessage msg = new NdefMessage(
new NdefRecord[]{createMimeRecord(
"application/eu.freemoser.myDebts2go", text.getBytes())});
return msg;
}
public NdefRecord createMimeRecord(String mimeType, byte[] payload) {
byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));
NdefRecord mimeRecord = new NdefRecord(
NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload);
return mimeRecord;
}
Danke fürs durchlesen