- UwbTagBleActivity: BLE scan filtered to 'UWB_TAG_XXXX' device names - Connects to GATT service 12345678-1234-5678-1234-56789abcdef0 - Read/write JSON config char: sleep_timeout_s, display_brightness, tag_name, uwb_channel, ranging_interval_ms, battery_report - Subscribes to status + battery notification characteristics - Material Design UI with scan list, config form, and live status - Runtime BLE permission handling for API 26+ / API 31+ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38 lines
1.4 KiB
XML
38 lines
1.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
|
|
<!-- BLE permissions (API 31+) -->
|
|
<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.BLUETOOTH_ADVERTISE" />
|
|
|
|
<!-- Legacy BLE (API < 31) -->
|
|
<uses-permission android:name="android.permission.BLUETOOTH"
|
|
android:maxSdkVersion="30" />
|
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
|
|
android:maxSdkVersion="30" />
|
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
|
|
android:maxSdkVersion="30" />
|
|
|
|
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
|
|
|
<application
|
|
android:allowBackup="true"
|
|
android:label="UWB Tag Config"
|
|
android:theme="@style/Theme.MaterialComponents.DayNight.DarkActionBar">
|
|
|
|
<activity
|
|
android:name=".UwbTagBleActivity"
|
|
android:exported="true"
|
|
android:launchMode="singleTop">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
</application>
|
|
|
|
</manifest>
|