apk(点击下载) / AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="83" android:versionName="1.3.6" android:compileSdkVersion="34" android:compileSdkVersionCodename="14" package="com.tbulu.watch" platformBuildVersionCode="34" platformBuildVersionName="14"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="27" android:targetSdkVersion="34" />
<uses-feature android:name="android.hardware.type.watch" />
<permission android:name="com.tbulu.watch.locateprovider" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.BODY_SENSORS" />
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND" />
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<queries>
<package android:name="com.heytap.wearable.oms.service" />
<intent>
<action android:name="android.intent.action.TTS_SERVICE" />
</intent>
<package android:name="com.coloros.ocs.opencapabilityservice" />
<package android:name="com.oplus.ocs" />
</queries>
<uses-permission android:name="heytap.wearable.permission.health.BIND_EXERCISE_SERVICE" />
<permission android:name="com.tbulu.watch.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" android:protectionLevel="signature" />
<uses-permission android:name="com.tbulu.watch.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<application android:theme="@style/Theme.TbuluWatch" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:name="com.tbulu.watch.MyApplication" android:allowBackup="true" android:largeHeap="true" android:supportsRtl="true" android:extractNativeLibs="false" android:fullBackupContent="@xml/backup_rules" android:usesCleartextTraffic="true" android:roundIcon="@mipmap/ic_launcher_round" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:dataExtractionRules="@xml/data_extraction_rules">
<meta-data android:name="design_width_in_dp" android:value="310" />
<meta-data android:name="design_height_in_dp" android:value="310" />
<meta-data android:name="com.amap.api.v2.apikey" android:value="ea4b8040a331f67d99831b4dc70845b8" />
<service android:name="com.amap.api.location.APSService" android:exported="false" />
<meta-data android:name="com.oplus.ocs.wearengine.AUTH_CODE" android:value="ATBFAiEA0QlcFXFW2lFo+m3iTT6ktV5N1x0Sprv2uyJ3WnkVTNACIE9rGLYNtOvo9oD05b6E73dQ60bE793SjwCcY0EVwC/mbqAZ5dn+AAA=" />
<provider android:name="com.tbulu.watch.locate.locateprocess.db.MyLocationProvider" android:permission="com.tbulu.watch.locateprovider" android:process=":locate" android:authorities="com.tbulu.watch.provider.locate" />
<service android:name="com.tbulu.watch.locate.locateprocess.service.LocateService" android:enabled="true" android:exported="true" android:process=":locate" android:foregroundServiceType="location">
<intent-filter android:priority="1000">
<action android:name="com.tbulu.watch.locateprocess.LocateService" />
</intent-filter>
</service>
<service android:name="com.tbulu.watch.service.AppService" android:enabled="true" android:exported="true" android:foregroundServiceType="location">
<intent-filter android:priority="1000">
<action android:name="com.tbulu.watch.AppService" />
</intent-filter>
</service>
<service android:name="com.tbulu.watch.service.DownloadService" android:enabled="true" android:exported="false" android:foregroundServiceType="dataSync">
<intent-filter android:priority="1000">
<action android:name="com.tbulu.watch.DownloadService" />
</intent-filter>
</service>
<activity android:name="com.tbulu.watch.ui.activity.WebviewActivity" android:exported="false" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.LoginActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:theme="@style/Theme.TbuluWelcome" android:label="@string/app_name" android:name="com.tbulu.watch.ui.activity.WelcomeActivity" android:exported="true" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tbulu" android:host="com.tbulu" android:path="/startsport" />
</intent-filter>
</activity>
<activity android:name="com.tbulu.watch.ui.activity.MainActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation" />
<activity android:name="com.tbulu.watch.ui.activity.TrackRecordActivity" android:exported="false" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.MyRecordActivity" android:exported="false" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.TrackSelectActivity" android:exported="false" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.TrackNavigateStartActivity" android:exported="false" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.QRActivity" android:exported="false" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.StatusActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.TrackOverlayActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.TrackHeatMapOverlayActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.SettingActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.TtsSetActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.AccountActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.AboutUsActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.DeveloperActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:theme="@style/Theme.TbuluWatch.disableSwipeToDismiss" android:name="com.tbulu.watch.ui.activity.SportingActivity" android:exported="true" android:launchMode="singleTask" android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tbulu" android:host="com.tbulu" android:path="/sporting" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tbulu" android:host="com.tbulu" android:path="/oppoSportTimeoutWarn" />
</intent-filter>
</activity>
<activity android:name="com.tbulu.watch.ui.activity.MapTileSourceSetActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:theme="@style/Theme.TbuluWatch.disableSwipeToDismiss" android:name="com.tbulu.watch.ui.activity.WatchTeamActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.HelpGuideActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.OverlaysSetActivity" android:exported="true" android:launchMode="singleTask" android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tbulu" android:host="com.tbulu" android:path="/overlaysSetting" />
</intent-filter>
</activity>
<activity android:name="com.tbulu.watch.ui.activity.SportStartActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.SatelliteModeActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.MyRecordListActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.TrackListActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.test.OppoLibTestActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.CalibrateCompassActivity" android:exported="true" android:launchMode="singleTask" android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tbulu" android:host="com.tbulu" android:path="/calibrateCompass" />
</intent-filter>
</activity>
<activity android:name="com.tbulu.watch.ui.activity.ToolboxActivity" android:exported="true" android:launchMode="singleTask" android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tbulu" android:host="com.tbulu" android:path="/toolbox" />
</intent-filter>
</activity>
<activity android:name="com.tbulu.watch.ui.activity.offline.OfflineMapActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.offline.AmapOfflineDownListActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.offline.AmapOfflineDownSelectActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.offline.HeatMapOfflineDownListActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.offline.HeatMapOfflineDownSelectActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<activity android:name="com.tbulu.watch.ui.activity.HeatMapDescriptionActivity" android:exported="false" android:launchMode="singleTask" android:configChanges="orientation|screenSize" />
<receiver android:name="com.oplus.ocs.wearengine.common.ConnReceiver" android:permission="oplus.ocs.permission.wearengine.CONN_RECEIVER" android:exported="true">
<intent-filter>
<action android:name="com.oplus.ocs.wearengine.CONNECT_REQUEST" />
</intent-filter>
</receiver>
<uses-library android:name="wear-sdk" android:required="false" />
<uses-library android:name="com.google.android.wearable" android:required="false" />
<provider android:name="androidx.startup.InitializationProvider" android:exported="false" android:authorities="com.tbulu.watch.androidx-startup" android:directBootAware="true">
<meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" android:value="androidx.startup" />
<meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup" />
<meta-data android:name="com.oplus.wearable.support.log.LogInitializer" android:value="androidx.startup" />
<meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer" android:value="androidx.startup" />
</provider>
<uses-library android:name="androidx.window.extensions" android:required="false" />
<uses-library android:name="androidx.window.sidecar" android:required="false" />
<activity android:name="androidx.activity.ComponentActivity" android:exported="true" />
<receiver android:name="androidx.profileinstaller.ProfileInstallReceiver" android:permission="android.permission.DUMP" android:enabled="true" android:exported="true" android:directBootAware="false">
<intent-filter>
<action android:name="androidx.profileinstaller.action.INSTALL_PROFILE" />
</intent-filter>
<intent-filter>
<action android:name="androidx.profileinstaller.action.SKIP_FILE" />
</intent-filter>
<intent-filter>
<action android:name="androidx.profileinstaller.action.SAVE_PROFILE" />
</intent-filter>
<intent-filter>
<action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
</intent-filter>
</receiver>
<provider android:name="me.jessyan.autosize.InitProvider" android:exported="false" android:multiprocess="true" android:authorities="com.tbulu.watch.autosize-init-provider" />
<provider android:name="com.liulishuo.okdownload.OkDownloadProvider" android:exported="false" android:authorities="com.tbulu.watch.com.liulishuo.okdownload" />
</application>
</manifest>