是否有任何 flutter 插件或文章可以做到这一点。
我想要的是:在 dart 中运行一个使用来电号码作为参数的方法,即使在应用程序终止后也是如此。
即使在flutter应用程序终止或关闭后,是否有任何方法可以运行代码。
场景:当用户接到电话时。该数字应该添加到我在 flutter 应用程序中编写的 flutter 函数中。该函数将检查我的数据库中的数字并将该数字共享给 API。
即使应用程序被终止,我也需要此进程在后台工作。(如 Truecaller)
Main.dart
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
static const platform = const MethodChannel('samples.flutter.dev/battery');
// Get battery level.
String _batteryLevel = 'Unknown battery level.';
Future<void> _getBatteryLevel() async {
String batteryLevel;
try {
final int result = await platform.invokeMethod('getBatteryLevel');
batteryLevel = 'Battery level at $result % .';
} on PlatformException catch (e) {
batteryLevel = "Failed to get battery level: '${e.message}'.";
}
setState(() …
Run Code Online (Sandbox Code Playgroud) 我需要将数据从下面的类传递到我的 flutter 应用程序,其中数据仅在发生来电事件时可用。我需要将此数据(mobileNumber)传递给flutter(如果可能的话,即使flutter应用程序终止,我也需要传递数据)
广播接收器.java
package com.ashbu.flutterappbackground;
...
public class MyBroadcastReceiver extends BroadcastReceiver {
String phoneNumber;
@Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
phoneNumber = incomingNumber;
Toast.makeText(context, "TeleDuce Customer "+ incomingNumber,
Toast.LENGTH_LONG).show();
}
},PhoneStateListener.LISTEN_CALL_STATE);
}
public String getData() {
String number = null;
if (phoneNumber != null) {
number = phoneNumber;
}else {
number = "noData";
}
return number;
}
Run Code Online (Sandbox Code Playgroud)
从上面的代码中,我需要将传入编号传递给flutter。如果可能 - 即使应用程序关闭也共享数据。 …
我需要在 firestore 中添加对象列表,如图所示。我只能用下面的代码添加两个列表
onPressed: () {
_fireStore.collection('notifyseller').document().updateData({
'Customer': userName,
"address": controller.text,
"mobile": mobileNumber,
"Item": FieldValue.arrayUnion([
{
"name": itemName.toList()[0],
"price": rate.toList()[0],
"quantity": quantity.toList()[0]
},
{
"name": itemName.toList()[1],
"price": rate.toList()[1],
"quantity": quantity.toList()[1]
},
]),
});
},
Run Code Online (Sandbox Code Playgroud)
这里 itemName.toList() 包含字符串列表。通过上面的代码,我只能添加两个数据。我需要将 itemName.toList() 中的所有项目添加到该数组中,而不是为每个数组提供索引