Meshtastic-Android/app/src/main/AndroidManifest.xml

193 lines
8.2 KiB
XML
Raw Normal View History

2020-01-20 15:53:22 -08:00
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2020-01-22 21:46:41 -08:00
package="com.geeksville.mesh"
2020-01-21 09:37:39 -08:00
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="GoogleAppIndexingWarning">
2020-07-16 18:25:31 -07:00
<!-- If a device is missing a GPS - we will still be able to work though , must be before uses-permission-->
<uses-feature
android:name="android.hardware.location"
android:required="false" />
<uses-feature
android:name="android.hardware.location.gps"
android:required="false" />
<!-- per https://github.com/journeyapps/zxing-android-embedded to force support for build 22 -->
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
2020-01-21 09:37:39 -08:00
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- only useful if this phone can do BTLE -->
2020-01-21 13:12:01 -08:00
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- needed to access bluetooth when app is background -->
2020-01-21 09:37:39 -08:00
2020-01-22 09:28:59 -08:00
<!--
2021-02-21 11:00:11 +08:00
This permission is required for analytics - and soon the MQTT gateway
2020-01-22 09:28:59 -08:00
-->
<uses-permission android:name="android.permission.INTERNET" />
2021-02-21 11:00:11 +08:00
<uses-permission android:name="android.permission.WAKE_LOCK" />
2020-01-22 09:28:59 -08:00
<!--
This permission is optional but recommended so we can be smart
about when to send data.
-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2020-01-22 09:28:59 -08:00
2021-12-14 22:48:20 -03:00
<!-- Only for debug log writing, disable for production
2020-01-24 17:47:32 -08:00
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2021-12-14 22:48:20 -03:00
-->
2020-01-24 17:47:32 -08:00
2020-02-04 13:24:04 -08:00
<!-- We run our mesh code as a foreground service - FIXME, find a way to stop doing this -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!-- Needed to open our bluetooth connection to our paired device (after reboot) -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- For android >=26 we can use the new BLE scanning API, which allows auto launching our service when our device is seen -->
2022-01-07 18:51:20 -03:00
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND" />
<uses-permission android:name="android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND" />
<!-- Uart access -->
2021-11-15 10:54:10 -03:00
<!-- zxing library for QR Code scanning using camera -->
<uses-permission android:name="android.permission.CAMERA" />
2020-01-21 09:37:39 -08:00
<uses-feature
android:name="android.hardware.bluetooth_le"
2020-07-16 18:25:31 -07:00
android:required="false" />
2020-01-20 15:53:22 -08:00
<!-- For the modern BLE scanning API -->
<uses-feature
android:name="android.software.companion_device_setup"
android:required="false" />
<!-- for USB serial access -->
<uses-feature
android:name="android.hardware.usb.host"
android:required="false" />
<!-- hardware acceleration is required for zxing barcode lib -->
2020-01-20 15:53:22 -08:00
<application
2020-04-11 09:39:34 -07:00
tools:replace="android:icon"
2020-01-22 21:46:41 -08:00
android:name="com.geeksville.mesh.MeshUtilApplication"
2020-01-20 15:53:22 -08:00
android:allowBackup="true"
2021-01-30 14:44:55 +08:00
android:icon="@mipmap/ic_launcher2"
2020-01-20 15:53:22 -08:00
android:label="@string/app_name"
2021-01-30 14:44:55 +08:00
android:roundIcon="@mipmap/ic_launcher2_round"
2020-01-20 15:53:22 -08:00
android:supportsRtl="true"
android:hardwareAccelerated="true"
2020-01-20 16:13:40 -08:00
android:theme="@style/AppTheme">
2020-01-21 09:37:39 -08:00
<meta-data
android:name="com.mixpanel.android.MPConfig.DisableViewCrawler"
2020-01-22 09:28:59 -08:00
android:value="true" />
2020-04-21 08:58:20 -07:00
<!-- Default crash collection and analytics off until we (possibly) turn it on in application.onCreate -->
2020-01-25 10:00:57 -08:00
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
2020-04-21 08:58:20 -07:00
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
2020-01-25 10:00:57 -08:00
2020-01-21 09:37:39 -08:00
<!-- we need bind job service for oreo -->
<service
android:name="com.geeksville.mesh.service.SoftwareUpdateService"
2020-01-21 09:37:39 -08:00
android:enabled="true"
android:exported="false"
2021-01-30 14:44:55 +08:00
android:permission="android.permission.BIND_JOB_SERVICE" />
2020-01-21 09:37:39 -08:00
<!-- This is the public API for doing mesh radio operations from android apps -->
2020-01-22 21:25:31 -08:00
<service
android:name="com.geeksville.mesh.service.MeshService"
2020-01-22 21:25:31 -08:00
android:enabled="true"
2021-01-30 14:44:55 +08:00
android:exported="true" tools:ignore="ExportedActivity">
<intent-filter>
<action android:name="com.geeksville.mesh.Service" />
</intent-filter>
</service>
2020-01-22 21:25:31 -08:00
<!-- This is a private service which just does direct communication to the radio -->
<service
android:name="com.geeksville.mesh.service.RadioInterfaceService"
android:enabled="true"
android:exported="false" />
2021-11-15 10:54:10 -03:00
<!-- zxing for QR Code scanning: lock portrait orientation -->
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="portrait"
tools:replace="screenOrientation" />
2020-01-20 15:53:22 -08:00
<activity
2020-01-22 21:46:41 -08:00
android:name="com.geeksville.mesh.MainActivity"
2020-01-20 15:53:22 -08:00
android:label="@string/app_name"
2020-02-10 15:39:04 -08:00
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden"
2021-05-09 09:02:53 +08:00
android:theme="@style/AppTheme">
2020-01-20 15:53:22 -08:00
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<!-- The QR codes to share channel settings are shared as meshtastic URLS
an approximate example:
2021-02-27 12:04:44 +08:00
http://www.meshtastic.org/d/YXNkZnF3ZXJhc2RmcXdlcmFzZGZxd2Vy
-->
<action android:name="android.intent.action.VIEW" />
2020-06-08 14:04:56 -07:00
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="www.meshtastic.org"
2021-02-27 12:04:44 +08:00
android:pathPrefix="/d/" />
<data
android:scheme="https"
android:host="www.meshtastic.org"
2021-02-27 12:04:44 +08:00
android:pathPrefix="/D/" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
2020-06-08 14:04:56 -07:00
<!-- The USB devices we want to be informed about -->
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
2020-01-20 15:53:22 -08:00
</activity>
2020-01-21 09:37:39 -08:00
<receiver android:name="com.geeksville.mesh.service.BootCompleteReceiver">
<!-- handle boot events -->
2020-01-21 09:37:39 -08:00
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<!--For HTC devices per https://stackoverflow.com/questions/20441308/boot-completed-not-working-android/46294732#46294732 -->
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
<!-- for testing -->
<action android:name="com.geeksville.mesh.SIM_BOOT" />
2020-01-21 09:37:39 -08:00
</intent-filter>
<!-- Also restart our service if the app gets upgraded -->
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<!-- I was using PACKAGE_REPLACED, but MY_PACKAGE_REPLACED is newer and seems cleaner
<data
android:scheme="package"
android:path="com.geeksville.mesh" /> -->
</intent-filter>
2020-01-21 09:37:39 -08:00
</receiver>
2020-01-20 15:53:22 -08:00
</application>
</manifest>