7

我想设置一个可以选择导航强制门户的活动。

当我选择一个被俘虏的 WiFi 网络时,我希望能够选择我的应用程序作为处理程序,而不是启动预装在每部 Android 手机上的 CaptivePortalLogin 应用程序。

这适用于 Pixel 2 和 OnePlus 6t,但不适用于我放置在这里的任何三星手机(S10 (9.0.0)、S8 (8.0.0)、A6 (8.0.0))。在三星手机上,它会立即打开 CaptivePortalLogin 应用程序。

CaptivePortalLogin 应用程序未设置为三星手机上的默认应用程序。

我已经以标准方式设置了活动:

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>

        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.net.conn.CAPTIVE_PORTAL"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

有没有办法让三星手机表现得像所有其他手机一样?

4

1 回答 1

0

三星通过将门户重定向到他们的系统来使用 android 强制门户机制,在内部处理它并阻止其他强制门户请求并在自己的浏览器上显示。与三星一样,华为等其他一些供应商也使用自己的机制,只有一加、小米、HTC 等使用默认机制,因此可以使用门户意图过滤器重定向到应用程序,但不能用于其他。

<intent-filter>
  <action android:name="android.net.conn.CAPTIVE_PORTAL"/>
  <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

一个清楚地解释它的链接在这里:

https://community.arubanetworks.com/t5/Wireless-Access/Samsung-Captive-Portal-Detection/mp/405934#M78972

于 2019-06-14T07:06:14.457 回答