AndroidManifest.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. package="io.legado.app">
  5. <uses-permission android:name="android.permission.INTERNET" />
  6. <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
  7. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  8. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  9. <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  10. <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
  11. <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
  12. <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
  13. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  14. <uses-permission
  15. android:name="android.permission.WRITE_EXTERNAL_STORAGE"
  16. tools:ignore="ScopedStorage" />
  17. <application
  18. android:name=".App"
  19. android:allowBackup="true"
  20. android:icon="@mipmap/ic_launcher"
  21. android:label="@string/app_name"
  22. android:networkSecurityConfig="@xml/network_security_config"
  23. android:requestLegacyExternalStorage="true"
  24. android:supportsRtl="true"
  25. android:theme="@style/AppTheme.Light"
  26. tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
  27. <!-- 主入口 -->
  28. <activity
  29. android:name=".ui.welcome.WelcomeActivity"
  30. android:exported="true">
  31. <intent-filter>
  32. <action android:name="android.intent.action.MAIN" />
  33. <category android:name="android.intent.category.LAUNCHER" />
  34. </intent-filter>
  35. </activity>
  36. <!-- 图标1 -->
  37. <activity
  38. android:name=".ui.welcome.Launcher1"
  39. android:enabled="false"
  40. android:exported="true"
  41. android:icon="@mipmap/launcher1">
  42. <intent-filter>
  43. <action android:name="android.intent.action.MAIN" />
  44. <category android:name="android.intent.category.LAUNCHER" />
  45. </intent-filter>
  46. </activity>
  47. <!-- 图标2 -->
  48. <activity
  49. android:name=".ui.welcome.Launcher2"
  50. android:enabled="false"
  51. android:exported="true"
  52. android:icon="@mipmap/launcher2">
  53. <intent-filter>
  54. <action android:name="android.intent.action.MAIN" />
  55. <category android:name="android.intent.category.LAUNCHER" />
  56. </intent-filter>
  57. </activity>
  58. <!-- 图标3 -->
  59. <activity
  60. android:name=".ui.welcome.Launcher3"
  61. android:enabled="false"
  62. android:exported="true"
  63. android:icon="@mipmap/launcher3">
  64. <intent-filter>
  65. <action android:name="android.intent.action.MAIN" />
  66. <category android:name="android.intent.category.LAUNCHER" />
  67. </intent-filter>
  68. </activity>
  69. <!-- 图标4 -->
  70. <activity
  71. android:name=".ui.welcome.Launcher4"
  72. android:enabled="false"
  73. android:exported="true"
  74. android:icon="@mipmap/launcher4">
  75. <intent-filter>
  76. <action android:name="android.intent.action.MAIN" />
  77. <category android:name="android.intent.category.LAUNCHER" />
  78. </intent-filter>
  79. </activity>
  80. <!-- 图标5 -->
  81. <activity
  82. android:name=".ui.welcome.Launcher5"
  83. android:enabled="false"
  84. android:exported="true"
  85. android:icon="@mipmap/launcher5">
  86. <intent-filter>
  87. <action android:name="android.intent.action.MAIN" />
  88. <category android:name="android.intent.category.LAUNCHER" />
  89. </intent-filter>
  90. </activity>
  91. <!-- 图标6 -->
  92. <activity
  93. android:name=".ui.welcome.Launcher6"
  94. android:enabled="false"
  95. android:exported="true"
  96. android:icon="@mipmap/launcher6">
  97. <intent-filter>
  98. <action android:name="android.intent.action.MAIN" />
  99. <category android:name="android.intent.category.LAUNCHER" />
  100. </intent-filter>
  101. </activity>
  102. <!-- 主界面 -->
  103. <activity
  104. android:name=".ui.main.MainActivity"
  105. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|uiMode"
  106. android:alwaysRetainTaskState="true"
  107. android:launchMode="singleTask" />
  108. <!-- 阅读界面 -->
  109. <activity
  110. android:name=".ui.book.read.ReadBookActivity"
  111. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  112. android:exported="true"
  113. android:launchMode="singleTask">
  114. <intent-filter>
  115. <action android:name="com.samsung.android.support.REMOTE_ACTION" />
  116. </intent-filter>
  117. <meta-data
  118. android:name="com.samsung.android.support.REMOTE_ACTION"
  119. android:resource="@xml/spen_remote_actions" />
  120. </activity>
  121. <!-- 书籍详情页 -->
  122. <activity
  123. android:name=".ui.book.info.BookInfoActivity"
  124. android:launchMode="singleTop" />
  125. <!-- 书籍信息编辑 -->
  126. <activity
  127. android:name=".ui.book.info.edit.BookInfoEditActivity"
  128. android:launchMode="singleTask" />
  129. <!-- 音频播放界面 -->
  130. <activity
  131. android:name="io.legado.app.ui.book.audio.AudioPlayActivity"
  132. android:launchMode="singleTask" />
  133. <!-- 授权界面 -->
  134. <activity
  135. android:name="io.legado.app.lib.permission.PermissionActivity"
  136. android:theme="@style/Activity.Permission" />
  137. <!-- 二维码扫描 -->
  138. <activity
  139. android:name=".ui.qrcode.QrCodeActivity"
  140. android:launchMode="singleTask" />
  141. <!-- 规则订阅 -->
  142. <activity
  143. android:name=".ui.rss.subscription.RuleSubActivity"
  144. android:launchMode="singleTask" />
  145. <!-- 书源编辑 -->
  146. <activity
  147. android:name=".ui.book.source.edit.BookSourceEditActivity"
  148. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  149. android:launchMode="singleTask"
  150. android:windowSoftInputMode="adjustResize|stateHidden" />
  151. <!-- 订阅源编辑 -->
  152. <activity
  153. android:name=".ui.rss.source.edit.RssSourceEditActivity"
  154. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  155. android:launchMode="singleTask"
  156. android:windowSoftInputMode="adjustResize|stateHidden" />
  157. <!-- 书源编辑 -->
  158. <activity
  159. android:name=".ui.replace.edit.ReplaceEditActivity"
  160. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  161. android:launchMode="singleTask"
  162. android:windowSoftInputMode="adjustResize|stateHidden" />
  163. <!-- 配置界面 -->
  164. <activity
  165. android:name=".ui.config.ConfigActivity"
  166. android:launchMode="singleTask" />
  167. <!-- 搜索界面 -->
  168. <activity
  169. android:name=".ui.book.search.SearchActivity"
  170. android:launchMode="standard" />
  171. <!-- 关于界面 -->
  172. <activity
  173. android:name=".ui.about.AboutActivity"
  174. android:launchMode="singleTask"
  175. android:screenOrientation="behind" />
  176. <!-- 捐赠界面 -->
  177. <activity
  178. android:name=".ui.about.DonateActivity"
  179. android:launchMode="singleTask"
  180. android:screenOrientation="behind" />
  181. <!-- 书源管理 -->
  182. <activity
  183. android:name=".ui.book.source.manage.BookSourceActivity"
  184. android:launchMode="singleTop"
  185. android:screenOrientation="behind" />
  186. <!-- 订阅源管理 -->
  187. <activity
  188. android:name=".ui.rss.source.manage.RssSourceActivity"
  189. android:launchMode="singleTop"
  190. android:screenOrientation="behind" />
  191. <!-- txt目录规则管理 -->
  192. <activity
  193. android:name=".ui.book.local.rule.TxtTocRuleActivity"
  194. android:launchMode="singleTop"
  195. android:screenOrientation="behind" />
  196. <!-- 替换规则界面 -->
  197. <activity
  198. android:name=".ui.replace.ReplaceRuleActivity"
  199. android:launchMode="singleTop"
  200. android:screenOrientation="behind" />
  201. <!-- 书籍管理 -->
  202. <activity
  203. android:name=".ui.book.manage.BookshelfManageActivity"
  204. android:launchMode="singleTop"
  205. android:screenOrientation="behind" />
  206. <!-- 书源调试 -->
  207. <activity
  208. android:name=".ui.book.source.debug.BookSourceDebugActivity"
  209. android:launchMode="singleTop"
  210. android:screenOrientation="behind" />
  211. <!-- 目录 -->
  212. <activity
  213. android:name=".ui.book.toc.TocActivity"
  214. android:launchMode="singleTop"
  215. android:screenOrientation="behind" />
  216. <!-- 正文搜索 -->
  217. <activity
  218. android:name=".ui.book.searchContent.SearchContentActivity"
  219. android:launchMode="singleTop"
  220. android:screenOrientation="behind" />
  221. <!-- RSS条目 -->
  222. <activity
  223. android:name=".ui.rss.article.RssSortActivity"
  224. android:launchMode="singleTop" />
  225. <!-- RSS阅读 -->
  226. <activity
  227. android:name=".ui.rss.read.ReadRssActivity"
  228. android:configChanges="orientation|screenSize"
  229. android:hardwareAccelerated="true"
  230. android:launchMode="singleTop" />
  231. <!-- 导入书籍 -->
  232. <activity
  233. android:name=".ui.book.local.ImportBookActivity"
  234. android:launchMode="singleTop" />
  235. <!-- 添加远程 -->
  236. <activity
  237. android:name=".ui.book.remote.RemoteBookActivity"
  238. android:launchMode="singleTop" />
  239. <!-- 发现界面 -->
  240. <activity
  241. android:name=".ui.book.explore.ExploreShowActivity"
  242. android:launchMode="singleTop" />
  243. <!-- 订阅源调试 -->
  244. <activity
  245. android:name=".ui.rss.source.debug.RssSourceDebugActivity"
  246. android:launchMode="singleTop" />
  247. <!-- Rss收藏 -->
  248. <activity
  249. android:name=".ui.rss.favorites.RssFavoritesActivity"
  250. android:launchMode="singleTop" />
  251. <!-- 书签 -->
  252. <activity
  253. android:name=".ui.book.bookmark.AllBookmarkActivity"
  254. android:launchMode="singleTop" />
  255. <!-- 缓存界面 -->
  256. <activity
  257. android:name=".ui.book.cache.CacheActivity"
  258. android:launchMode="singleTop" />
  259. <!-- WebView界面 -->
  260. <activity
  261. android:name=".ui.browser.WebViewActivity"
  262. android:launchMode="standard" />
  263. <!-- 书源登录 -->
  264. <activity
  265. android:name="io.legado.app.ui.login.SourceLoginActivity"
  266. android:configChanges="orientation|screenSize"
  267. android:hardwareAccelerated="true"
  268. android:theme="@style/AppTheme.Transparent" />
  269. <!-- 阅读记录 -->
  270. <activity
  271. android:name=".ui.about.ReadRecordActivity"
  272. android:configChanges="orientation|screenSize"
  273. android:hardwareAccelerated="true" />
  274. <!-- 选择文件 -->
  275. <activity
  276. android:name=".ui.document.HandleFileActivity"
  277. android:configChanges="orientation|screenSize"
  278. android:hardwareAccelerated="true"
  279. android:theme="@style/AppTheme.Transparent" />
  280. <!-- 文字处理 -->
  281. <activity
  282. android:name=".receiver.SharedReceiverActivity"
  283. android:exported="true"
  284. android:label="@string/receiving_shared_label"
  285. android:theme="@style/AppTheme.Transparent">
  286. <intent-filter>
  287. <action android:name="android.intent.action.PROCESS_TEXT" />
  288. <category android:name="android.intent.category.DEFAULT" />
  289. <data android:mimeType="text/plain" />
  290. </intent-filter>
  291. <intent-filter>
  292. <action android:name="android.intent.action.SEND" />
  293. <category android:name="android.intent.category.DEFAULT" />
  294. <data android:mimeType="text/plain" />
  295. </intent-filter>
  296. </activity>
  297. <!-- 一键导入 -->
  298. <activity
  299. android:name=".ui.association.OnLineImportActivity"
  300. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  301. android:exported="true"
  302. android:theme="@style/AppTheme.Transparent">
  303. <intent-filter>
  304. <action android:name="android.intent.action.VIEW" />
  305. <category android:name="android.intent.category.DEFAULT" />
  306. <category android:name="android.intent.category.BROWSABLE" />
  307. <data android:scheme="legado" />
  308. <data android:scheme="yuedu" />
  309. </intent-filter>
  310. </activity>
  311. <!-- 验证码输入 -->
  312. <activity
  313. android:name=".ui.association.VerificationCodeActivity"
  314. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  315. android:exported="true"
  316. android:theme="@style/AppTheme.Transparent">
  317. </activity>
  318. <!-- 打开文件 -->
  319. <activity
  320. android:name=".ui.association.FileAssociationActivity"
  321. android:exported="true"
  322. android:launchMode="singleTop"
  323. android:theme="@style/AppTheme.Transparent">
  324. <!-- VIEW (Open with) action -->
  325. <!-- Works when an app knows the media type of a file, e.g. Gmail or Chrome. -->
  326. <intent-filter>
  327. <action android:name="android.intent.action.VIEW" />
  328. <category android:name="android.intent.category.DEFAULT" />
  329. <category android:name="android.intent.category.BROWSABLE" />
  330. <data android:scheme="app" />
  331. <data android:scheme="content" />
  332. <data android:scheme="file" />
  333. <!-- text -->
  334. <data android:mimeType="text/plain" />
  335. <!-- json -->
  336. <data android:mimeType="application/json" />
  337. <!-- EPUB -->
  338. <data android:mimeType="application/epub+zip" />
  339. </intent-filter>
  340. <!-- Works when an app doesn't know the media type, e.g. Dropbox -->
  341. <intent-filter>
  342. <action android:name="android.intent.action.VIEW" />
  343. <category android:name="android.intent.category.DEFAULT" />
  344. <category android:name="android.intent.category.BROWSABLE" />
  345. <data android:host="*" />
  346. <data android:scheme="app" />
  347. <data android:scheme="content" />
  348. <data android:scheme="file" />
  349. <!-- This media type is necessary, otherwise it won't match on the file extension -->
  350. <data android:mimeType="*/*" />
  351. <!--TXT-->
  352. <data android:pathPattern=".*\\.txt" />
  353. <data android:pathPattern=".*\\.TXT" />
  354. <!--JSON-->
  355. <data android:pathPattern=".*\\.json" />
  356. <data android:pathPattern=".*\\.JSON" />
  357. <!-- EPUB -->
  358. <data android:pathPattern=".*\\.epub" />
  359. <data android:pathPattern=".*\\.EPUB" />
  360. </intent-filter>
  361. </activity>
  362. <service android:name=".service.CheckSourceService" />
  363. <service android:name=".service.CacheBookService" />
  364. <service android:name=".service.WebService" />
  365. <service
  366. android:name=".service.WebTileService"
  367. android:exported="true"
  368. android:icon="@drawable/ic_web_service_noti"
  369. android:label="legado Web Service"
  370. android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
  371. <intent-filter>
  372. <action android:name="android.service.quicksettings.action.QS_TILE" />
  373. </intent-filter>
  374. </service>
  375. <service android:name=".service.TTSReadAloudService" />
  376. <service android:name=".service.HttpReadAloudService" />
  377. <service android:name=".service.AudioPlayService" />
  378. <service android:name=".service.DownloadService" />
  379. <receiver
  380. android:name=".receiver.MediaButtonReceiver"
  381. android:exported="true">
  382. <intent-filter>
  383. <action android:name="android.intent.action.MEDIA_BUTTON" />
  384. </intent-filter>
  385. </receiver>
  386. <provider
  387. android:name=".api.ReaderProvider"
  388. android:authorities="${applicationId}.readerProvider"
  389. android:enabled="true"
  390. android:exported="true"
  391. tools:ignore="ExportedContentProvider" />
  392. <provider
  393. android:name="androidx.core.content.FileProvider"
  394. android:authorities="${applicationId}.fileProvider"
  395. android:exported="false"
  396. android:grantUriPermissions="true">
  397. <meta-data
  398. android:name="android.support.FILE_PROVIDER_PATHS"
  399. android:resource="@xml/file_paths" />
  400. </provider>
  401. <meta-data
  402. android:name="channel"
  403. android:value="${APP_CHANNEL_VALUE}" />
  404. </application>
  405. <queries>
  406. <intent>
  407. <action android:name="android.intent.action.TTS_SERVICE" />
  408. </intent>
  409. <intent>
  410. <action android:name="android.intent.action.PROCESS_TEXT" />
  411. <data android:mimeType="text/plain" />
  412. </intent>
  413. </queries>
  414. </manifest>