我想设置一个活动,可以选择该活动来导航俘虏门户。
当我选择俘虏的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>
是否有一种方法可以使三星手机的行为与其他所有手机的行为相同?
答案 0 :(得分:0)
三星通过将门户网站重定向到其系统来使用android强制门户网站机制,在内部进行处理并阻止其他强制门户网站请求并在其自己的浏览器上显示。 像三星一样,华为等其他一些供应商也使用他们自己的机制,只有Oneplus,Mi,Htc等其他厂商使用默认机制,因此可以使用门户网站意图过滤器重定向到应用程序,而其他应用程序则不能。
<intent-filter>
<action android:name="android.net.conn.CAPTIVE_PORTAL"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
一个链接清楚地说明了这一点: