2014-11-12 4 views
-1

У меня есть приложение webView. Список ссылок на некоторые телевизионные потоковые каналы.Android: сбой приложений для webView

Некоторые ссылки m3u8, а другие - sop.

Если я получаю доступ к ссылке m3u8, она открывается в медиаплеере по умолчанию, если я пытаюсь открыть sop-ссылки, и у меня нет SopCast Player, мое приложение вылетает , и я получил ошибку ниже.

Если у меня установлен SopCast Player, все будет нормально.

Я сейчас с Android.

Мои файлы: Manifest

ManinActivity

Ошибка:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=sop://111.175.143.195:3912/151638 } 
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409) 
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 
at android.app.Activity.startActivityForResult(Activity.java:2827) 
at android.app.Activity.startActivity(Activity.java:2933) 
at com.example.tv.MainActivity$1.shouldOverrideUrlLoading(MainActivity.java:47) 
at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:239) 
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:346) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3735) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:662) 
at dalvik.system.NativeStart.main(Native Method) 

Пожалуйста, пожалуйста, пожалуйста, помогите мне !! Извините за мой английский.

ответ

-1

В вашем shouldOverrideUrlLoading() вы должны заменить startActivity(i); с

try { 
    startActivity(i); 
} catch (ActivityNotFoundException e) { 
    // do what you want if appropriate app is not installed 
} 
+0

Большое спасибо !!!! –

1

Это приводит к сбоям , потому что приложение не установлено. Чего вы ожидали?

Необходимо сначала проверить, установлен ли пакет до, называя Intent.

+0

Как я могу это сделать? –

0

Погрешность в значительной степени само за себя. система Android не знает, как обращаться с этим URL-адресом.

Вы можете просто обернуть

startActivity(i); 

в try/catch -блоком (и информирует пользователя о проблеме в catch), или вы можете заранее проверить, может ли система справиться с этим Намерение, как outlined here.

Смежные вопросы