Intérprete estándar URI roto?

Tengo problemas con los URIs de intenciones en un dispositivo en particular, así que probé el ejemplo de CommonsWare URLHandler como se sugiere aquí: Lanzar mi aplicación usando el URI de intención y el hipervínculo URI de intención en su página de ejemplo también falla al invocar la aplicación. La muestra declara su intención-filtro como este:

<intent-filter> <action android:name="com.commonsware.android.MY_ACTION" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter> 

Y el hipervínculo en la página web de ejemplo es:

 <a href="intent:#Intent;action=com.commonsware.android.MY_ACTION;end">Link back to URLHandler via intent: URL</a> 

Esto funciona en la mayoría de los dispositivos, pero no en el HTC Amaze 4G, con Android 4.0.3. Cuando toco el enlace, el logcat da:

 I/PRIME(9029): <CallBackProxy> Send to WebViewClient. I/PRIME(9029): <Browser> Send to HtcLinkifyDispatcher I/ActivityManager(262): START intent from pid 9029 D/MP-Decision(891): Aggress decision engine: Off D/MP-Decision(891): Switch back to normal parameters: Nw=2.700000, Tw=180, Ns=2.100000, Ts=270, Decision_ms=100, Poll_ms=10 V/NfcService(600): setForegroundNdefPush msg = null callback = null D/HtcTelephony(561): requestSetFastDormancy: module=0 mode=0 D/WebViewTimersControl(9029): onBrowserActivityPause D/WebViewTimersControl(9029): Pausing webview timers, view=com.android.browser.BrowserWebView@40e562f8 I/ActivityManager(262): Start proc com.htc.HtcLinkifyDispatcher for activity com.htc.HtcLinkifyDispatcher/.HtcLinkifyDispatcherActivity: pid=11087 uid=1000 gids={1015, 3002, 3001, 3003, 5001, 5003, 3007, 3006, 2001, 1007} D/ConnectivityService(262): onUidRulesChanged(uid=1000, uidRules=0) V/browser(9029): BrowserActivity.onWindowFocusChanged D/HtcLinkifyDispatcherActivity(11087): @@@@@ receive action=com.commonsware.android.MY_ACTION I/HtcAppAssociationsUtils (Dispatcher)(11087): @@@@@ enable by 2 = true I/HtcAppAssociationsUtils (Dispatcher)(11087): @@@@@ method = 0 I/HtcAppAssociationsUtils (Dispatcher)(11087): @@@@@ check enable = true D/MP-Decision(891): Aggress decision engine: On D/ActivityManager(262): Config after re-evaluted by window manager: null D/MP-Decision(891): Switch to aggressive parameters: Nw=1.990000, Tw=140, Ns=1.400000, Ts=190, Decision_ms=50, Poll_ms=10 V/browser(9029): BrowserActivity.onWindowFocusChanged D/HtcTelephony(561): requestSetFastDormancy: module=0 mode=1 W/InputManagerService(262): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40e75100 D/WebViewTimersControl(9029): onBrowserActivityResume D/WebViewTimersControl(9029): Resuming webview timers, view=com.android.browser.BrowserWebView@40e562f8 W/BaseUi(9029): mMainView is already attached to wrapper in attachTabToContentView! W/BaseUi(9029): mContainer is already attached to content in attachTabToContentView! V/NfcService(600): setForegroundNdefPush msg = null callback = android.nfc.INdefPushCallback$Stub$Proxy@40e73470 D/memalloc(9029): /dev/pmem: Unmapping buffer base:0x569c5000 size:4386816 offset:4177920 D/browser(9029): [BrowserActivity::Connectivity_Type] ===== 1 I/ActivityManager(262): No longer want com.htc.providers.settings:remote (pid 10935): hidden #16, adj=15 D/Process(262): killProcessQuiet, pid=10935 D/Process(262): dalvik.system.VMStack.getThreadStackTrace(Native Method) D/ConnectivityService(262): onUidRulesChanged(uid=1000, uidRules=0) D/Process(262): java.lang.Thread.getStackTrace(Thread.java:599) D/Process(262): android.os.Process.killProcessQuiet(Process.java:823) D/Process(262): com.android.server.am.ActivityManagerService.updateOomAdjLocked(ActivityManagerService.java:15132) D/Process(262): com.android.server.am.ActivityManagerService.trimApplications(ActivityManagerService.java:15294) D/Process(262): com.android.server.am.ActivityStack.activityIdleInternal(ActivityStack.java:3450) D/Process(262): com.android.server.am.ActivityManagerService.activityIdle(ActivityManagerService.java:4303) D/Process(262): android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:362) D/Process(262): com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1706) D/Process(262): android.os.Binder.execTransact(Binder.java:338) D/Process(262): dalvik.system.NativeStart.run(Native Method) 

¿Alguien sabe lo que está pasando con intención URIs aquí? ¿Por qué no funciona? ¿Y hay una solución?

Gracias, Simon

One Solution collect form web for “Intérprete estándar URI roto?”

Dado que puedo replicar este problema en un HTC One S, y no puedo replicar este problema en otros dispositivos ICS / JB, presumo que este es otro resultado de la solución alternativa Linkify que HTC puso en marcha en respuesta a los litigios de Apple .

¿Y hay una solución?

Si controlas ambas partes (por ejemplo, un WebView contiene el enlace, además de la aplicación que responde a la URL de intent ), puedes forzar manualmente un selector a través de Intent.createChooser() y eso podría funcionar.

Si, sin embargo, usted está confiando en código de terceros (por ejemplo, un navegador web) para poder abrir su aplicación, en estos dispositivos HTC, creo que sólo está atornillado.

  • Se ha producido una excepción de host desconocida al intentar conectarse al servidor en el Rezound de HTC y sólo en 4g
  • La devolución de llamada de autofocus de la cámara no ocurre
  • El atributo maxlength de la entrada en html no funciona en HTC One M7
  • HTC sólo Hard Crash dentro de OpenGL
  • SetOrientationHint gira el video en sentido contrario a las agujas del reloj en las cámaras de frente de algunos teléfonos (HTC)
  • copia sqlite db al dispositivo android falla
  • Android Studio "No hay dispositivos conectados" HTC One (M7)
  • ¿Cómo saber cuánto tamaño de montón libre está disponible para bitmap para Android 2. *?
  • HTC Wildfire Plugin para depuración no funciona en UBUNTU
  • ¿Por qué algunos móviles xhdpi no muestran la imagen ubicada en / res / drawable solamente?
  • HTC Un error? Partes del encabezado HTTP que aparecen en URLConnection InputStream
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.