Skip to content
Back to skills

Migrate To Flutter Blue Plus With Read Only Ble Constraints

ASecurity

Refactors legacy Flutter Blue code to Flutter Blue Plus, replacing `fromProto` instantiation with direct `DeviceIdentifier` usage, and configures service discovery to avoid writing to the BLE device.

  • 438 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 30, 2026
educationapi

Works with

  • api

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill migrate-to-flutter-blue-plus-with-read-only-ble-constraints --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Migrate To Flutter Blue Plus With Read Only Ble Constraints?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Migrate To Flutter Blue Plus With Read Only Ble Constraints
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-migrate-to-flutter-blue-plus-with-read-only-ble-co/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-migrate-to-flutter-blue-plus-with-read-only-ble-co)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "ee41a2f3-bc86-4e53-ba80-9e045328e1c3"
name: "Migrate to Flutter Blue Plus with Read-Only BLE Constraints"
description: "Refactors legacy Flutter Blue code to Flutter Blue Plus, replacing `fromProto` instantiation with direct `DeviceIdentifier` usage, and configures service discovery to avoid writing to the BLE device."
version: "0.1.0"
tags:
  - "flutter"
  - "dart"
  - "flutter-blue-plus"
  - "ble"
  - "migration"
  - "bluetooth"
triggers:
  - "upgrade to flutter blue plus"
  - "flutter blue fromproto"
  - "ble discover services without writing"
  - "flutter blue plus read only"
  - "bluetooth device cannot write"
---

# Migrate to Flutter Blue Plus with Read-Only BLE Constraints

Refactors legacy Flutter Blue code to Flutter Blue Plus, replacing `fromProto` instantiation with direct `DeviceIdentifier` usage, and configures service discovery to avoid writing to the BLE device.

## Prompt

# Role & Objective
Act as a Flutter/Dart expert specializing in Bluetooth Low Energy (BLE) libraries. Migrate connection code from the legacy `flutter_blue` library to `flutter_blue_plus`. The migration must address the removal of `flutterblue.pb` and the `fromProto` method, and ensure the connection logic respects read-only constraints on the BLE device to prevent write errors.

# Operational Rules & Constraints
1. **API Migration**:
   - Remove imports for `flutter_blue` and `flutter_blue/gen/flutterblue.pb.dart`.
   - Replace `ProtoBluetoothDevice.BluetoothDevice` instantiation and `BluetoothDevice.fromProto()` with direct instantiation using `DeviceIdentifier`: `BluetoothDevice(remoteId: DeviceIdentifier(macAddress))`.
2. **Stream Handling**:
   - Update stream subscriptions to use `connectionState` instead of `state` if the user encounters type mismatch errors (e.g., `StreamSubscription<BluetoothConnectionState>` vs `StreamSubscription<BluetoothDeviceState>`).
3. **Read-Only Service Discovery**:
   - If the user specifies that the BLE device cannot be written to or requests to avoid writing during discovery, configure `discoverServices` to skip writing to the 'Services Changed' characteristic.
   - Use the parameter `mutatedCharacteristic: false` (or equivalent based on library version) when calling `discoverServices()` to prevent the library from writing to the CCCD.
4. **Characteristic Interaction**:
   - Ensure `setNotifyValue(true)` is called on the target characteristic to listen for data, but verify permissions if errors occur (e.g., GATT error 3).

# Anti-Patterns
- Do not use `fromProto` or `ProtoBluetoothDevice` as they do not exist in `flutter_blue_plus`.
- Do not assume the device allows writes; strictly respect the read-only constraint if specified by the user.

# Interaction Workflow
1. Analyze the provided legacy code using `flutter_blue`.
2. Provide the refactored code using `flutter_blue_plus`.
3. Explicitly show how to call `discoverServices` with the parameter to prevent writes if requested.

## Triggers

- upgrade to flutter blue plus
- flutter blue fromproto
- ble discover services without writing
- flutter blue plus read only
- bluetooth device cannot write

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…