You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:37:42