Flutter Nearby Messages API异常,onFound未触发消息接收
问题:Flutter Nearby Messages API无法实现消息收发
编辑说明:经过多日研究后,我决定停止使用Nearby Messages API,因为它无法正常工作,且Google已计划将其弃用。因此我改用flutter_beacon监听消息,broadcast_beacon基于BLE技术发送消息。
我尝试使用Flutter的Nearby Messages API插件实现消息的广播与接收,代码看似无问题,但发布的消息无法被订阅设备接收。
以下是我的代码:
import 'package:flutter/material.dart'; import 'dart:async'; import 'package:flutter_nearby_messages_api/flutter_nearby_messages_api.dart'; void main() => runApp(MyApp()); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { FlutterNearbyMessagesApi nearbyMessagesApi = FlutterNearbyMessagesApi(); @override void initState() { super.initState(); initPlatformState(); } // Platform messages are asynchronous, so we initialize in an async method. Future<void> initPlatformState() async { // 针对iOS配置 await nearbyMessagesApi.setAPIKey('AIzaSyBUdrSDYbhLtOxzSBDbwu_NtUgR9IOq5zQ'); nearbyMessagesApi.onFound = (message) { print('~~~onFound : $message'); }; nearbyMessagesApi.onLost = (message) { print('~~~onLost : $message'); }; nearbyMessagesApi.statusHandler = (status) { print('~~~statusHandler : $status'); }; nearbyMessagesApi.setPermissionAlert( '权限申请', '需要获取相关权限以使用附近消息功能', '拒绝', '允许'); nearbyMessagesApi.permissionHandler = (status) { print(status); }; nearbyMessagesApi.bluetoothPowerErrorHandler = (args) { print('~~~ 蓝牙未开启'); }; nearbyMessagesApi.bluetoothPermissionErrorHandler = (args) { print('~~~ 蓝牙权限未获取'); }; nearbyMessagesApi.microphonePermissionErrorHandler = (args) { print('~~~ 麦克风权限未获取'); }; // 未完全了解前请勿使用此方法 // nearbyMessagesApi.setNearbyAccessPermission(true); } @override Widget build(BuildContext context) { return new MaterialApp( home: new Scaffold( appBar: new AppBar( title: const Text('Flutter 附近消息示例'), ), body: new Container( color: Colors.white70, child: new Column(children: [ new TextButton( onPressed: () async { await nearbyMessagesApi.publish('Hello world!'); }, child: new Text("发布消息")), new TextButton( onPressed: () async { await nearbyMessagesApi.unPublish(); }, child: new Text("停止发布")), new TextButton( onPressed: () async { await nearbyMessagesApi.backgroundSubscribe(); }, child: new Text("后台订阅消息")), new TextButton( onPressed: () async { await nearbyMessagesApi.backgroundUnsubscribe(); }, child: new Text("停止订阅")) ]), ), ), ); } }
我也已在Android文件夹的Manifest文件中添加了API密钥:
<meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="AIzaSyBUdrSDYbhLtOxzSBDbwu_NtUgR9IOq5zQ" />
内容的提问来源于stack exchange,提问作者Kanhaiya Chatla
相关产品推荐
相关产品推荐

