We have a custom Android Oreo System which does not have a web browser in it. When the system connects to Network with Captive Portal, CaptivePortalLoginActivity gets launched with this SSL error:
The network you're trying to join has security issues. For example the login page may not belong to the organization shown. CONTINUE ANYWAY VIA BROWSER
but upon clicking CONTINUE ANYWAY VIA BROWSER the app crashes because there is no browser present.
11-19 05:00:03.912 10434 10434 D CaptivePortalLoginActivity: starting activity with intent ACTION_VIEW for http://connectivitycheck.gstatic.com/generate_204
11-19 05:00:03.916 2565 8240 I ActivityManager: START u0 {act=android.intent.action.VIEW dat=http://connectivitycheck.gstatic.com/...} from uid 10019
11-19 05:00:03.920 10434 10434 D AndroidRuntime: Shutting down VM
--------- beginning of crash
11-19 05:00:03.921 10434 10434 E AndroidRuntime: FATAL EXCEPTION: main
11-19 05:00:03.921 10434 10434 E AndroidRuntime: Process: com.android.captiveportallogin, PID: 10434
11-19 05:00:03.921 10434 10434 E AndroidRuntime: java.lang.RuntimeException: Unable to destroy activity {com.android.captiveportallogin/com.android.captiveportallogin.CaptivePortalLoginActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://connectivitycheck.gstatic.com/... }
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4385)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4401)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.ActivityThread.access$1900(ActivityThread.java:176)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1649)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6494)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://connectivitycheck.gstatic.com/... }
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1937)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4487)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4445)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:4806)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:4774)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at com.android.captiveportallogin.CaptivePortalLoginActivity.onDestroy(CaptivePortalLoginActivity.java:270)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Activity.performDestroy(Activity.java:7208)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1249)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4370)
11-19 05:00:03.921 10434 10434 E AndroidRuntime: ... 9 more
11-19 05:00:03.925 10434 10434 I Process : Sending signal. PID: 10434 SIG: 9
How to handle Captive Portal without a web browser in Android Oreo?