Я пытаюсь запустить приложение, сканируя тег, но намерение, которое я получаю, - это действие Main, а не NDEF Discovered, как я бы хотел.Приложение, запущенное Action Main (из AAR) вместо NDEF Обнаружено
Вот мой код я использую, чтобы написать NdefMessage:
NdefRecord aar = NdefRecord.createApplicationRecord("com.example.mynfc");
NdefRecord record = createUriRecord("www.stackoverflow.com");
NdefMessage message = new NdefMessage(new NdefRecord[]{record, aar});
с createUriRecord:
private NdefRecord createUriRecord(String text){
String uniqueId = text.substring(4);
byte[] uriField = uniqueId.getBytes(Charset.forName("US-ASCII"));
byte[] payload = new byte[uriField.length+1]; //add 1 for the URI Prefix
payload[0] = 0x01; //prefixes http://www. to the URI
System.arraycopy(uriField, 0, payload, 1, uriField.length); //appends URI to payload
NdefRecord uriRecord = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[0], payload);
return uriRecord;
}
А вот часть манифеста с целью фильтра:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppBaseTheme" >
<activity
android:name="com.example.mynfc.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<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" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/techs" />
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Что я делаю неправильно? Запись aar занимает 2-е место, а фильтр намерений учитывает все типы mime. thx для справки
Ty, на самом деле я хотел запустить свою деятельность, чтобы открыть веб-страницу в браузере. Но это делается автоматически, если я выберу AAR. Кстати, строка: «полезная нагрузка [0] = 0x01;» добавляет http: // – Jinbonka
Я упустил «полезную нагрузку [0] = 0x01;'; мой плохой, извините! –