1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3/* 4 * Copyright (C) 2014 The Android Open Source Project 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18--> 19 20<!-- versionCode is set to placeholder module version which will 21 be replaced during build. Do not change it! --> 22<manifest xmlns:android="http://schemas.android.com/apk/res/android" 23 xmlns:tools="http://schemas.android.com/tools" 24 package="com.android.captiveportallogin" 25 android:versionCode="0"> 26 27 <uses-permission android:name="android.permission.INTERNET" /> 28 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 29 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 30 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 31 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" /> 32 <uses-permission android:name="android.permission.MAINLINE_NETWORK_STACK" /> 33 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> 34 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" /> 35 <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> 36 37 <!-- The login activity can start downloads, and in cases where the download is an APK, 38 tapping on the notification to open the downloaded file will cause the package installer to 39 start and verify this permission. 40 If this permission is requested, the package installer will prompt the user to grant the 41 permission in Settings. If the user has granted the permission, they will be able to install the 42 package. 43 Not requesting this permission would cause the package manager to silently ignore the 44 notification tap. 45 Applications may be offered on portals such as airline wifi, in which case installing the app 46 from the portal can be useful. --> 47 <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> 48 49 <!-- In order to support CustomTabsClient#getPackageName method to query the PackageManager 50 to determine which packages support the Custom Tabs API. On apps that target Android 11 51 and above, this requires adding the following package visibility elements to the manifest.--> 52 <queries> 53 <intent> 54 <action android:name="android.support.customtabs.action.CustomTabsService" /> 55 </intent> 56 </queries> 57 58 <application android:label="@string/app_name" 59 android:icon="@drawable/app_icon" 60 android:usesCleartextTraffic="true" 61 android:supportsRtl="true" > 62 <activity 63 android:name="com.android.captiveportallogin.CaptivePortalLoginActivity" 64 android:label="@string/action_bar_label" 65 android:theme="@style/AppTheme" 66 android:exported="true" 67 android:configChanges="keyboardHidden|orientation|screenSize" > 68 <intent-filter> 69 <action android:name="android.net.conn.CAPTIVE_PORTAL"/> 70 <category android:name="android.intent.category.DEFAULT"/> 71 </intent-filter> 72 </activity> 73 <!-- TODO(b/309362084): use a "data-initiated data transfer job" instead of a foreground 74 service for downloads --> 75 <service android:name=".DownloadService" android:exported="false" 76 android:foregroundServiceType="dataSync" /> 77 <provider 78 android:name="androidx.core.content.FileProvider" 79 android:authorities="com.android.captiveportallogin.fileprovider" 80 android:exported="false" 81 android:grantUriPermissions="true"> 82 <meta-data 83 android:name="android.support.FILE_PROVIDER_PATHS" 84 android:resource="@xml/file_paths"/> 85 </provider> 86 </application> 87</manifest> 88