问题标签 [flutter-method-channel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
26 浏览

android - 在生物特征认证期间的颤振中,我想创建并返回一个密钥对,该怎么做?

在 flutter_biometrics 库中,有一种方法可以在成功的生物识别身份验证中获取公钥。但我需要公钥和私钥或对称密钥。我们可以在 Flutter 中做到这一点吗?

0 投票
1 回答
89 浏览

flutter - Flutter:如何永久注册传感器(并且永远不要取消注册?)

TL;DR 我怎样才能让 Android 传感器为我的应用程序永久运行/激活/注册,即使我关闭它?

目标:
我正在制作一个 Flutter 应用程序,它使用计步器包计算您的步数,
该包使用Android的内置传感器TYPE_STEP_COUNTER
返回自上次启动 (iOS) 以来采取的步数。在 Android 上,安装应用程序之前采取的任何步骤都不会计算在内。

我是如何实现的:

  • 当应用程序在前台主动运行时,每一步都会导致 amyStepCount增加 1。
  • 在所有其他情况下(手机锁定、进入主屏幕、关闭应用程序...),androidTYPE_STEP_COUNTER传感器仍应在后台运行stepCount,一旦我再次打开我的应用程序,新的和上次保存的区别stepCount(保存使用 shared_prefs) 将被计算并添加到myStepCount.

重要提示:
传感器TYPE_STEP_COUNTER必须在后台永久运行/保持注册,即使在我锁定手机、转到主屏幕或关闭应用程序后...

观察:

  • 在我的三星 Galaxy A02s 上,我的应用程序运行良好,正如它应该的那样(如上所述)。那是因为在那部手机上我还安装了 Google Fit 应用程序,它可以 24/7 跟踪您的步数(因此 TYPE_STEP_COUNTER传感器被永久注册)。
  • 在我的三星 Galaxy S7 上,我的应用程序无法正常运行。 myStepCount当我在应用程序在前台运行时采取措施时会增加。但是,一旦我再次打开应用程序,将不会添加应用程序关闭时采取的步骤。注意:我在这款手机上没有任何其他计步应用,例如 Google Fit。myStepCount

结论:
我需要找到一种方法TYPE_STEP_COUNTER从我的 Flutter 应用程序中注册传感器,并且即使在我关闭应用程序后也保持注册状态。

2 尝试(但不成功)的解决方案:

第一次尝试:
从我的 Flutter 代码中调用原生 Android 代码来注册传感器
这是我的main.dart文件(为简单起见,省略了不重要的部分):

这是我的MainActivity.kt文件:

尽管数量很少print(...)并且Log.d(...)按预期在控制台中打印,但该应用程序无法按我预期的方式运行。当我退出应用程序时,例如走 50 步,然后再次打开应用程序,那 50 步就不见了。似乎传感器在某处未注册。

第二次尝试:
通过删除修改计步器包的代码unregisterListener(...):我对文件所做的唯一更改是 2Log.d(...)条语句,更重要的是,注释掉了特定的代码行。

SensorStreamHandler.kt从计步器包修改:

这也没有解决我的问题。因此,如果有人知道我如何在我的颤振应用程序中永久注册 TYPE_STEP_COUNTER 传感器,请告诉我。

0 投票
0 回答
27 浏览

flutter - Flutter MethodChannel 回调未触发 UI 操作

我已经定义了一个从 AppDelegate.swift 到 Flutter 的 MethodChannel,它触发了 Flutter dart 代码中注册的回调。目标是在 App 收到 FCM Push Notification 时,根据notification_type参数打开特定屏幕。

方法通道成功触发了回调(我可以在控制台中看到颤振回调方法的打印结果),但是如果我尝试从回调方法执行与 UI 相关的任何事情,它永远不会被触发。整个用户界面被冻结,不仅物理点击工作。看起来 MethodChannel 与 ViewController 搞砸了。

这是触发 MethodChannel 的代码

在 runApp() 之前的 main.dart 中,我注册了回调

回调方法是这样的

当我点击通知时,我在 Xcode 控制台输出上打印了此错误

我可以看到打印,我可以确认 HiveBox 设置了正确的值,但是某些东西正在杀死 ViewController,是因为调用 MethodChannel 时出错吗?

所有帮助将不胜感激!!

0 投票
0 回答
50 浏览

flutter - 我正在尝试使用方法通道来访问相机并拍照,但是如何从方法通道响应中获取文件

如果我们通过 bitmap(imageView) 它将不起作用,最初它什么都不重新调整,在相机服务开始没有获取任何数据之后

我如何将位图转换为文件并返回它,你能帮我解决这个问题吗?

这是我从平台端获取数据的代码,