{"adoption": {"forks": 360, "observed_at": "2026-08-28T04:04:36.850002+00:00", "stars": 1398}, "canonical_url": "https://ross.abutalabs.com/products/ble", "card": {"archived": false, "artifact_type": "library", "description": "✨Android BLE基础操作框架，基于回调，操作简单。包含扫描、多连接、广播包解析、服务读写及通知等功能。", "domain": ["android-tools", "iot", "mobile-development"], "enriched": true, "function": ["sdk", "developer-tools"], "health_score": 20, "homepage": "http://www.huwei.tech/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["xiaoyaoyou1212/BLE"], "name": "xiaoyaoyou1212/BLE", "platform": ["jvm"], "pushed_at": "2018-05-28T15:05:32+00:00", "repo": "xiaoyaoyou1212/BLE", "stars": 1398, "tags": ["bluetooth-low-energy", "ble-scanning", "ble-connections", "callback-based", "gatt", "android", "mobile"], "topics": ["ble", "uuid", "characteristics"], "urls": [], "use_cases": ["scan and filter BLE devices on Android", "manage multiple Bluetooth device connections", "parse BLE advertisement broadcast packets", "read and write GATT characteristics and subscribe to notifications", "auto-reconnect to BLE devices with retry logic", "limit concurrent BLE connections with LRU eviction"], "what_it_is": "An Android BLE (Bluetooth Low Energy) operation framework written in Java that simplifies device communication with a callback-based API. It provides scanning with configurable filters, multi-device connection management with LRU eviction, advertisement packet parsing, and GATT service read/write/notify operations.", "when_to_avoid": ["you need data framing such as packet splitting and reassembly, which the library explicitly does not handle", "you target modern Android BLE APIs or need active maintenance and recent updates", "you need a Kotlin-first or coroutine/Flow-based BLE library"], "when_to_choose": ["you need a simple callback-based Android BLE library for scanning and multi-device GATT communication", "you want built-in scan filters by name, MAC, UUID, or signal strength", "you need configurable timeouts, retries, and max connection counts out of the box"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ble", "repo": "xiaoyaoyou1212/BLE", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.850002+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:15.241006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "246b0da67c6cde429a79de2ac717e6ffdcc8e0c6932d728993552b020ed5e407", "fetched_at": "2026-08-28T04:04:36.850002+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/BLE"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3680, "days_push": 3019, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}