¿Cómo puedo asegurarme de que Android Beam no inicie una nueva instancia de mi actividad "singleTop"?
En primer lugar, el caso de uso: 2 teléfonos tienen mi aplicación abierta en la misma pantalla. Quiero que un usuario pueda compartir el contenido de la pantalla (datos) con el otro sin necesariamente abrir una nueva instancia de la actividad al transmitir con NFC. (Ambos dispositivos Android están ejecutando Ice Cream Sandwich)
Así que tengo una actividad singleTop declarada como esta en el manifiesto.
- Cómo arreglar el error setBeamPushUris?
- ¿Cómo iniciar una aplicación sin el icono del lanzador mediante la exploración de una etiqueta NFC?
- ¿Es SDK para NFC lector / escritor acr122u dispositivo necesario para construir la aplicación de lectura / escritura?
- Device Owner en Android 5.0 (y otros) sin dispositivos enraizados, aprovisionamiento de dispositivos por NFC
- Cómo obtener NFC trabajando en Android con Qt 5.6
<activity android:name=".activity.MyActivity" android:configChanges="orientation|keyboardHidden" android:launchMode="singleTop"> <intent-filter android:label="@string/activityLabel"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="abc/xyz" /> </intent-filter> <intent-filter> <action android:name="android.nfc.action.NDEF_DISCOVERED"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="application/xyz"/> </intent-filter> </activity>
Cuando se dispara una acción VIEW
y la actividad ya está en la parte superior, el método onNewIntent()
se llama en la misma instancia si la actividad.
Cuando se NDEF_DISCOVERED
una acción NDEF_DISCOVERED
y la actividad ya está en la parte superior, el método onCreate()
se llama en una nueva instancia de la actividad.
- android nfc configuración toggle oyente
- ¿Cómo implementar los pagos NFC?
- Etiqueta Android NFC recibida con el receptor de difusión
- ¿Cómo la emulación de tarjeta basada en software (HCE) garantiza la seguridad NFC?
- Velocidad de lectura de etiqueta NFC
- Maneje NFC mientras el teléfono está durmiendo en Android
- Etiqueta NFC y formato de datos NFC: Android
- Android: emulación de tarjetas - lea el mensaje ndef con PN532 nfc module
Describe el caso de que la aplicación ya está abierta y la Actividad adecuada está en primer plano. En ese caso, puede utilizar el primer plano de despacho de NFC intenciones llamando a NfcAdapter.enableForegroundDispatch()
en NfcAdapter.enableForegroundDispatch()
de su actividad onResume()
(y disableForegroudDispatch()
en onPause()
). Esto obligará a todos los NFC Intents a ser entregados a su actividad (vía onNewIntent()
).
No tengo respuesta para ti. Pero tengo una solución: hacer que el NDEF_DISCOVERED inicie una nueva actividad. Haga que la actividad sea invisible ( Theme.NoBackground
) y en onCreate, haga que comience MyActivity
con singleTop y termine inmediatamente. MyActivity
debería aparecer ahora con onNewIntent
.
¿Has mirado la muestra de Android Beam:
http://developer.android.com/resources/samples/AndroidBeamDemo/index.html
Implementa este comportamiento que desea (menos VIEW intento de filtrado). No estoy seguro de si esa intención afectará la NDEF_DISCOVERED, pero sería interesante modificar quizá la muestra de Android Beam para ver si puede causar el mismo comportamiento que su aplicación.
Usted debe usar: android: launchMode = "singleInstance" Funciona para mí.
- Descodificación RSA con clave pública
- ¿Por qué el resultado del algoritmo GZip no es el mismo en Android y .Net?