我正在尝试从来电中获取电话号码,对于 Android,我一直在尝试实现这个答案,但我一直在努力,因为答案不完整,没有示例,而且非常抽象,这对于一个对平台渠道没有任何了解的人来说是很困难的。
\n我尝试过的:\n我在 ServiceReceiver 中实现了鸽子代码,声明了一个我想要更新并传递给 flutter 代码的变量,但是当我接到电话时,应用程序甚至不要求任何权限,这让我认为手机接到来电时不会调用 onReceive() 函数。
\n这是代码:
\n主要.dart:
\nimport \'package:flutter/material.dart\';\nimport \'package:flutter/services.dart\';\nimport \'./output.dart\';\n\nvoid main() {\n runApp(MyApp());\n}\n\n// void onClick() async {\n// SearchRequest request = SearchRequest()..query = \'test\';\n// Api api = Api();\n// SearchReply reply = await api.search(request);\n// print(\'reply: ${reply.result}\');\n// }\n\nclass MyApp extends StatefulWidget {\n // This widget is the root of your application.\n @override\n _MyAppState createState() => _MyAppState();\n}\n\nclass _MyAppState extends State<MyApp> {\n static const platform = const MethodChannel(\'battery.ttsollution.com\');\n String _phoneNumber = \'\';\n String _batteryLevel …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 android studio 上的广播接收器获取来电信息。以下是我尝试过的方法:
<receiver android:name=".receivers.IncomingCalls">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
关于这个接收者的意图我尝试过:
方法一:
incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Run Code Online (Sandbox Code Playgroud)
方法二:
final String state1 = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, final String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
incnumber=incomingNumber;
}
},PhoneStateListener.LISTEN_CALL_STATE);
Run Code Online (Sandbox Code Playgroud)
方法三:
incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Run Code Online (Sandbox Code Playgroud)
所有这三个方法都返回空 incnumber。
顺便说一句,我正在 android 派上运行这个项目,请帮助我。