相关疑难解决方法(0)

如何在flutter中获取来电的电话号码?

我正在尝试从来电中获取电话号码,对于 Android,我一直在尝试实现这个答案,但我一直在努力,因为答案不完整,没有示例,而且非常抽象,这对于一个对平台渠道没有任何了解的人来说是很困难的。

\n

我尝试过的:\n我在 ServiceReceiver 中实现了鸽子代码,声明了一个我想要更新并传递给 flutter 代码的变量,但是当我接到电话时,应用程序甚至不要求任何权限,这让我认为手机接到来电时不会调用 onReceive() 函数。

\n

这是代码:

\n

主要.dart:

\n
import \'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)

java android dart flutter

6
推荐指数
0
解决办法
980
查看次数

在Android上以编程方式获取来电号码

我正在尝试使用 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 派上运行这个项目,请帮助我。

android broadcastreceiver telephonymanager

4
推荐指数
1
解决办法
9013
查看次数