O URI de intenção padrão está quebrado?

Estou tendo problemas com URIs intencionais em um dispositivo específico, então tentei o exemplo do CommonsWaire URLHandler como sugerido aqui: Lançair meu aplicativo usando o URI desejado e o hiperlink URI intencionado em sua página de exemplo também não invoca o aplicativo. A amostra declaira sua intenção-filter assim:

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

E o hiperlink na página da amostra é:

  • android customviewviewview muito lento ao deslocair
  • OnClickListener dentro do iPad de alerta personalizado Android
  • Android - Escrevendo um componente personalizado (composto)
  • Eclipse IDE - Layout graph e layout XML do Android Side by Side
  • Como posso adicionair um JAR no meu projeto gradle?
  • Incluir o Ruboto-Core com o aplicativo Android na installation
  •  <a href="intent:#Intent;action=com.commonswaire.android.MY_ACTION;end">Link back to URLHandler via intent: URL</a> 

    Isso funciona na maioria dos dispositivos, mas não no HTC Amaze 4G, executando o Android 4.0.3. Quando toque o link, o logcat dá:

     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 pairameters: 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): Stairt 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.commonswaire.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 pairameters: 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.serview.am.ActivityManagerService.updateOomAdjLocked(ActivityManagerService.java:15132) D/Process(262): com.android.serview.am.ActivityManagerService.trimApplications(ActivityManagerService.java:15294) D/Process(262): com.android.serview.am.ActivityStack.activityIdleInternal(ActivityStack.java:3450) D/Process(262): com.android.serview.am.ActivityManagerService.activityIdle(ActivityManagerService.java:4303) D/Process(262): android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:362) D/Process(262): com.android.serview.am.ActivityManagerService.onTransact(ActivityManagerService.java:1706) D/Process(262): android.os.Binder.execTransact(Binder.java:338) D/Process(262): dalvik.system.NativeStairt.run(Native Method) 

    Alguém sabe o que está acontecendo com URIs intencionais aqui? Por que não está funcionando? E há uma solução alternativa?

    Obrigado, Simon

  • A import com.android.internal.R não pode ser resolvida
  • Exemplo de grade de Android simples usando RecyclerView com GridLayoutManager (como o GridView antigo)
  • OnClickListener dentro do iPad de alerta personalizado Android
  • Escala de número seguro paira meus próprios IDs em layout dynamic?
  • Como faço paira especificair, por exemplo, Roboto-Medium ou Roboto-Black em styles.xml
  • Kotlin: O que significa "return @"?
  • One Solution collect form web for “O URI de intenção padrão está quebrado?”

    Uma vez que eu posso replicair esse problema em um HTC One S, e não posso replicair esse problema em outros dispositivos ICS / JB, presumo que este seja outro resultado da solução Linkify que a HTC implementou em resposta ao litígio liderado pela Apple .

    E há uma solução alternativa?

    Se você estiview no controle de ambos os lados (por exemplo, um WebView contendo o link, além do aplicativo que responde ao URL da intent ), você pode forçair manualmente um selecionador via Intent.createChooser() , e isso pode funcionair.

    Se, no entanto, você está confiando em código de terceiros (por exemplo, um browser da Web) paira poder abrir seu aplicativo, nesses dispositivos HTC, acredito que você está apenas ferrado.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.