AndroidManifest.xml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  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. <uses-sdk tools:overrideLibrary="top.yukonga.miuix.kmp.blur" />
  5. <uses-permission android:name="android.permission.INTERNET" />
  6. <uses-permission android:name="android.permission.WAKE_LOCK" />
  7. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  8. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  9. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  10. <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  11. <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
  12. <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
  13. <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
  14. <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
  15. <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  16. <uses-permission
  17. android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
  18. tools:ignore="ScopedStorage" />
  19. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  20. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  21. <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
  22. <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
  23. <application
  24. android:name=".App"
  25. android:allowBackup="true"
  26. android:icon="@mipmap/ic_launcher"
  27. android:label="${app_name}"
  28. android:networkSecurityConfig="@xml/network_security_config"
  29. android:requestLegacyExternalStorage="true"
  30. android:enableOnBackInvokedCallback="true"
  31. android:hardwareAccelerated="true"
  32. android:supportsRtl="true"
  33. android:theme="@style/Base.AppTheme"
  34. tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
  35. <!-- 图标0 -->
  36. <activity
  37. android:name=".ui.main.LauncherW"
  38. android:enabled="false"
  39. android:exported="true"
  40. android:icon="@mipmap/launcherw">
  41. <intent-filter>
  42. <action android:name="android.intent.action.MAIN" />
  43. <category android:name="android.intent.category.LAUNCHER" />
  44. </intent-filter>
  45. </activity>
  46. <activity
  47. android:name=".ui.main.Launcher0"
  48. android:enabled="false"
  49. android:exported="true"
  50. android:icon="@mipmap/launcher0">
  51. <intent-filter>
  52. <action android:name="android.intent.action.MAIN" />
  53. <category android:name="android.intent.category.LAUNCHER" />
  54. </intent-filter>
  55. </activity>
  56. <!-- 图标1 -->
  57. <activity
  58. android:name=".ui.main.Launcher1"
  59. android:enabled="false"
  60. android:exported="true"
  61. android:icon="@mipmap/launcher1">
  62. <intent-filter>
  63. <action android:name="android.intent.action.MAIN" />
  64. <category android:name="android.intent.category.LAUNCHER" />
  65. </intent-filter>
  66. </activity>
  67. <!-- 图标2 -->
  68. <activity
  69. android:name=".ui.main.Launcher2"
  70. android:enabled="false"
  71. android:exported="true"
  72. android:icon="@mipmap/launcher2">
  73. <intent-filter>
  74. <action android:name="android.intent.action.MAIN" />
  75. <category android:name="android.intent.category.LAUNCHER" />
  76. </intent-filter>
  77. </activity>
  78. <!-- 图标3 -->
  79. <activity
  80. android:name=".ui.main.Launcher3"
  81. android:enabled="false"
  82. android:exported="true"
  83. android:icon="@mipmap/launcher3">
  84. <intent-filter>
  85. <action android:name="android.intent.action.MAIN" />
  86. <category android:name="android.intent.category.LAUNCHER" />
  87. </intent-filter>
  88. </activity>
  89. <!-- 图标4 -->
  90. <activity
  91. android:name=".ui.main.Launcher4"
  92. android:enabled="false"
  93. android:exported="true"
  94. android:icon="@mipmap/launcher4">
  95. <intent-filter>
  96. <action android:name="android.intent.action.MAIN" />
  97. <category android:name="android.intent.category.LAUNCHER" />
  98. </intent-filter>
  99. </activity>
  100. <!-- 图标5 -->
  101. <activity
  102. android:name=".ui.main.Launcher5"
  103. android:enabled="false"
  104. android:exported="true"
  105. android:icon="@mipmap/launcher5">
  106. <intent-filter>
  107. <action android:name="android.intent.action.MAIN" />
  108. <category android:name="android.intent.category.LAUNCHER" />
  109. </intent-filter>
  110. </activity>
  111. <!-- 图标6 -->
  112. <activity
  113. android:name=".ui.main.Launcher6"
  114. android:enabled="false"
  115. android:exported="true"
  116. android:icon="@mipmap/launcher6">
  117. <intent-filter>
  118. <action android:name="android.intent.action.MAIN" />
  119. <category android:name="android.intent.category.LAUNCHER" />
  120. </intent-filter>
  121. </activity>
  122. <!-- 主界面 -->
  123. <activity
  124. android:name=".ui.main.MainActivity"
  125. android:alwaysRetainTaskState="true"
  126. android:enableOnBackInvokedCallback="true"
  127. android:windowSoftInputMode="adjustPan"
  128. android:exported="true">
  129. <intent-filter>
  130. <action android:name="android.intent.action.MAIN" />
  131. <category android:name="android.intent.category.LAUNCHER" />
  132. </intent-filter>
  133. </activity>
  134. <activity
  135. android:name=".ui.welcome.WelcomeActivity"
  136. android:enableOnBackInvokedCallback="true"
  137. android:exported="false"
  138. android:windowSoftInputMode="adjustPan|stateHidden" />
  139. <!-- 阅读漫画界面 -->
  140. <activity
  141. android:name=".ui.book.manga.ReadMangaActivity"
  142. android:exported="false"
  143. android:enableOnBackInvokedCallback="true"
  144. android:launchMode="singleTask">
  145. <intent-filter>
  146. <action android:name="com.samsung.android.support.REMOTE_ACTION" />
  147. </intent-filter>
  148. <meta-data
  149. android:name="com.samsung.android.support.REMOTE_ACTION"
  150. android:resource="@xml/spen_remote_actions" />
  151. </activity>
  152. <!-- 书籍详情页 -->
  153. <activity
  154. android:name=".ui.book.info.BookInfoActivity"
  155. android:enableOnBackInvokedCallback="true"
  156. android:launchMode="singleTop" />
  157. <!-- 书籍信息编辑 -->
  158. <activity
  159. android:name=".ui.book.info.edit.BookInfoEditActivity"
  160. android:enableOnBackInvokedCallback="true"
  161. android:launchMode="singleTask"
  162. android:windowSoftInputMode="adjustResize|stateHidden" />
  163. <!-- 音频播放界面 -->
  164. <activity
  165. android:name="io.legado.app.ui.book.audio.AudioPlayActivity"
  166. android:enableOnBackInvokedCallback="true"
  167. android:launchMode="singleTask" />
  168. <!-- 授权界面 -->
  169. <activity
  170. android:name="io.legado.app.lib.permission.PermissionActivity"
  171. android:enableOnBackInvokedCallback="true"
  172. android:theme="@style/Activity.Permission" />
  173. <!-- 二维码扫描 -->
  174. <activity
  175. android:name=".ui.qrcode.QrCodeActivity"
  176. android:enableOnBackInvokedCallback="true"
  177. android:launchMode="singleTask" />
  178. <!-- 书源编辑 -->
  179. <activity
  180. android:name=".ui.book.source.edit.BookSourceEditActivity"
  181. android:enableOnBackInvokedCallback="true"
  182. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  183. android:launchMode="singleTask"
  184. android:windowSoftInputMode="adjustResize|stateHidden" />
  185. <!-- 订阅源编辑 -->
  186. <activity
  187. android:name=".ui.rss.source.edit.RssSourceEditActivity"
  188. android:enableOnBackInvokedCallback="true"
  189. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  190. android:launchMode="singleTask"
  191. android:windowSoftInputMode="adjustResize|stateHidden" />
  192. <!-- 搜索界面 -->
  193. <activity
  194. android:name=".ui.book.search.SearchActivity"
  195. android:enableOnBackInvokedCallback="true"
  196. android:launchMode="standard" />
  197. <activity
  198. android:name=".ui.about.CrashReportActivity"
  199. android:enableOnBackInvokedCallback="true"
  200. android:excludeFromRecents="true"
  201. android:launchMode="singleTask" />
  202. <!-- 书源管理 -->
  203. <activity
  204. android:name=".ui.book.source.manage.BookSourceActivity"
  205. android:enableOnBackInvokedCallback="false"
  206. android:launchMode="singleTop" />
  207. <!-- 订阅源管理 -->
  208. <activity
  209. android:name=".ui.rss.source.manage.RssSourceActivity"
  210. android:enableOnBackInvokedCallback="true"
  211. android:launchMode="singleTop" />
  212. <!-- txt目录规则管理 -->
  213. <activity
  214. android:name=".ui.book.toc.rule.TxtTocRuleActivity"
  215. android:enableOnBackInvokedCallback="true"
  216. android:launchMode="singleTop" />
  217. <!-- 替换规则界面 -->
  218. <activity
  219. android:name=".ui.replace.ReplaceRuleActivity"
  220. android:enableOnBackInvokedCallback="true"
  221. android:windowSoftInputMode="adjustResize"
  222. android:launchMode="singleTop" />
  223. <!-- 书源调试 -->
  224. <activity
  225. android:name=".ui.book.source.debug.BookSourceDebugActivity"
  226. android:enableOnBackInvokedCallback="true"
  227. android:launchMode="singleTop" />
  228. <!-- 目录 -->
  229. <activity
  230. android:name=".ui.book.toc.TocActivity"
  231. android:enableOnBackInvokedCallback="true"
  232. android:launchMode="singleTop" />
  233. <!-- 订阅源调试 -->
  234. <activity
  235. android:name=".ui.rss.source.debug.RssSourceDebugActivity"
  236. android:enableOnBackInvokedCallback="true"
  237. android:launchMode="singleTop" />
  238. <!-- 书签 -->
  239. <activity
  240. android:name=".ui.book.bookmark.AllBookmarkActivity"
  241. android:enableOnBackInvokedCallback="true"
  242. android:launchMode="singleTop" />
  243. <!-- WebView界面 -->
  244. <activity
  245. android:name=".ui.browser.WebViewActivity"
  246. android:enableOnBackInvokedCallback="true"
  247. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  248. android:launchMode="standard" />
  249. <!-- 书源登录 -->
  250. <activity
  251. android:name="io.legado.app.ui.login.SourceLoginActivity"
  252. android:enableOnBackInvokedCallback="true"
  253. android:configChanges="orientation|screenSize"
  254. android:hardwareAccelerated="true"
  255. android:theme="@style/AppTheme.Transparent" />
  256. <!-- 字典管理 -->
  257. <activity
  258. android:name=".ui.dict.rule.DictRuleActivity"
  259. android:enableOnBackInvokedCallback="true"
  260. android:configChanges="orientation|screenSize"
  261. android:hardwareAccelerated="true" />
  262. <activity
  263. android:name=".ui.dict.DictActivity"
  264. android:enableOnBackInvokedCallback="true"
  265. android:configChanges="orientation|screenSize"
  266. android:hardwareAccelerated="true" />
  267. <!-- 文件管理 -->
  268. <activity
  269. android:name=".ui.file.FileManageActivity"
  270. android:enableOnBackInvokedCallback="true"
  271. android:configChanges="orientation|screenSize"
  272. android:hardwareAccelerated="true" />
  273. <!-- 选择文件 -->
  274. <activity
  275. android:name=".ui.file.HandleFileActivity"
  276. android:enableOnBackInvokedCallback="true"
  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:theme="@style/AppTheme.Transparent" />
  316. <!-- 跳转确认 -->
  317. <activity
  318. android:name=".ui.association.OpenUrlConfirmActivity"
  319. android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
  320. android:theme="@style/AppTheme.Transparent" />
  321. <!-- 打开文件 -->
  322. <activity
  323. android:name=".ui.association.FileAssociationActivity"
  324. android:exported="true"
  325. android:launchMode="singleTop"
  326. android:theme="@style/AppTheme.Transparent">
  327. <!-- VIEW (Open with) action -->
  328. <!-- Works when an app knows the media type of a file, e.g. Gmail or Chrome. -->
  329. <intent-filter>
  330. <action android:name="android.intent.action.VIEW" />
  331. <category android:name="android.intent.category.DEFAULT" />
  332. <category android:name="android.intent.category.BROWSABLE" />
  333. <data android:scheme="app" />
  334. <data android:scheme="content" />
  335. <data android:scheme="file" />
  336. <!-- text -->
  337. <data android:mimeType="text/plain" />
  338. <!-- json -->
  339. <data android:mimeType="application/json" />
  340. <!-- EPUB -->
  341. <data android:mimeType="application/epub+zip" />
  342. <!-- pdf -->
  343. <data android:mimeType="application/pdf" />
  344. <!-- mobi -->
  345. <data android:mimeType="application/mobi" />
  346. <data android:mimeType="application/x-mobipocket-ebook" />
  347. <!-- azw/azw3 -->
  348. <data android:mimeType="application/azw" />
  349. <data android:mimeType="application/azw3" />
  350. <data android:mimeType="application/x-mobi8-ebook" />
  351. <data android:mimeType="application/octet-stream" />
  352. </intent-filter>
  353. <!-- Works when an app doesn't know the media type, e.g. Dropbox -->
  354. <intent-filter>
  355. <action android:name="android.intent.action.VIEW" />
  356. <category android:name="android.intent.category.DEFAULT" />
  357. <category android:name="android.intent.category.BROWSABLE" />
  358. <data android:host="*" />
  359. <data android:scheme="app" />
  360. <data android:scheme="content" />
  361. <data android:scheme="file" />
  362. <!-- This media type is necessary, otherwise it won't match on the file extension -->
  363. <data android:mimeType="*/*" />
  364. <!--TXT-->
  365. <data android:pathAdvancedPattern=".*\\.[tT][xX][tT]" />
  366. <data android:pathPattern=".*\\.txt" />
  367. <data android:pathPattern=".*\\.TXT" />
  368. <!--JSON-->
  369. <data android:pathAdvancedPattern=".*\\.[jJ][sS][oO][nN]" />
  370. <data android:pathPattern=".*\\.json" />
  371. <data android:pathPattern=".*\\.JSON" />
  372. <!-- EPUB -->
  373. <data android:pathAdvancedPattern=".*\\.[eE][pP][uU][bB]" />
  374. <data android:pathPattern=".*\\.epub" />
  375. <data android:pathPattern=".*\\.EPUB" />
  376. <!-- pdf -->
  377. <data android:pathAdvancedPattern=".*\\.[pP][dD][fF]" />
  378. <data android:pathPattern=".*\\.pdf" />
  379. <data android:pathPattern=".*\\.PDF" />
  380. <!-- mobi -->
  381. <data android:pathAdvancedPattern=".*\\.[mM][oO][bB][iI]" />
  382. <data android:pathPattern=".*\\.mobi" />
  383. <data android:pathPattern=".*\\.MOBI" />
  384. <!-- azw -->
  385. <data android:pathAdvancedPattern=".*\\.[aA][zZ][wW]" />
  386. <data android:pathPattern=".*\\.azw" />
  387. <data android:pathPattern=".*\\.AZW" />
  388. <!-- azw3 -->
  389. <data android:pathAdvancedPattern=".*\\.[aA][zZ][wW]3" />
  390. <data android:pathPattern=".*\\.azw3" />
  391. <data android:pathPattern=".*\\.AZW3" />
  392. <!-- zip -->
  393. <data android:pathAdvancedPattern=".*\\.[zZ][iI][pP]" />
  394. <data android:pathPattern=".*\\.zip" />
  395. <data android:pathPattern=".*\\.ZIP" />
  396. <!-- rar -->
  397. <data android:pathAdvancedPattern=".*\\.[rR][aA][rR]" />
  398. <data android:pathPattern=".*\\.rar" />
  399. <data android:pathPattern=".*\\.RAR" />
  400. <!-- 7z -->
  401. <data android:pathAdvancedPattern=".*\\.7[zZ]" />
  402. <data android:pathPattern=".*\\.7z" />
  403. <data android:pathPattern=".*\\.7Z" />
  404. </intent-filter>
  405. </activity>
  406. <service
  407. android:name=".service.CheckSourceService"
  408. android:foregroundServiceType="dataSync" />
  409. <service
  410. android:name=".service.CacheBookService"
  411. android:foregroundServiceType="dataSync" />
  412. <service
  413. android:name=".service.ExportBookService"
  414. android:foregroundServiceType="dataSync" />
  415. <service
  416. android:name=".service.WebService"
  417. android:foregroundServiceType="dataSync" />
  418. <service
  419. android:name=".service.WebTileService"
  420. android:exported="true"
  421. android:foregroundServiceType="dataSync"
  422. android:icon="@drawable/ic_web_service_noti"
  423. android:label="legado Web Service"
  424. android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
  425. >
  426. <intent-filter>
  427. <action android:name="android.service.quicksettings.action.QS_TILE" />
  428. </intent-filter>
  429. </service>
  430. <service
  431. android:name=".service.TTSReadAloudService"
  432. android:foregroundServiceType="mediaPlayback" />
  433. <service
  434. android:name=".service.HttpReadAloudService"
  435. android:foregroundServiceType="mediaPlayback" />
  436. <service
  437. android:name=".service.AudioPlayService"
  438. android:foregroundServiceType="mediaPlayback" />
  439. <service
  440. android:name=".service.DownloadService"
  441. android:foregroundServiceType="dataSync" />
  442. <receiver
  443. android:name=".receiver.MediaButtonReceiver"
  444. android:exported="true">
  445. <intent-filter>
  446. <action android:name="android.intent.action.MEDIA_BUTTON" />
  447. </intent-filter>
  448. </receiver>
  449. <provider
  450. android:name=".api.ReaderProvider"
  451. android:authorities="${applicationId}.readerProvider"
  452. android:enabled="true"
  453. android:exported="true"
  454. tools:ignore="ExportedContentProvider" />
  455. <provider
  456. android:name="androidx.core.content.FileProvider"
  457. android:authorities="${applicationId}.fileProvider"
  458. android:exported="false"
  459. android:grantUriPermissions="true">
  460. <meta-data
  461. android:name="android.support.FILE_PROVIDER_PATHS"
  462. android:resource="@xml/file_paths" />
  463. </provider>
  464. <provider
  465. android:name="androidx.startup.InitializationProvider"
  466. android:authorities="${applicationId}.androidx-startup"
  467. android:exported="false"
  468. tools:node="merge">
  469. <meta-data
  470. android:name="androidx.emoji2.text.EmojiCompatInitializer"
  471. tools:node="remove" />
  472. </provider>
  473. <provider
  474. android:name="com.google.firebase.provider.FirebaseInitProvider"
  475. android:authorities="${applicationId}.firebaseinitprovider"
  476. android:exported="false"
  477. tools:node="remove" />
  478. <meta-data
  479. android:name="channel"
  480. android:value="${APP_CHANNEL_VALUE}" />
  481. </application>
  482. <queries>
  483. <intent>
  484. <action android:name="android.intent.action.VIEW" />
  485. <data android:scheme="*" />
  486. </intent>
  487. <intent>
  488. <action android:name="android.intent.action.VIEW" />
  489. <data
  490. android:mimeType="*/*"
  491. android:scheme="*" />
  492. </intent>
  493. <intent>
  494. <action android:name="android.intent.action.TTS_SERVICE" />
  495. </intent>
  496. <intent>
  497. <action android:name="android.intent.action.PROCESS_TEXT" />
  498. <data android:mimeType="text/plain" />
  499. </intent>
  500. </queries>
  501. </manifest>