Ant*_*REL 11
您必须通过平台渠道来实现它:
\n\n添加到文件android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>\n<receiver android:name=".ServiceReceiver" >\n<intent-filter>\n <action android:name="android.intent.action.PHONE_STATE" />\n</intent-filter>\nRun Code Online (Sandbox Code Playgroud)\n创建文件android/app/src/main/java/{your_package}/ServiceReceiver.java
public class ServiceReceiver extends BroadcastReceiver {\n\n@Override\npublic void onReceive(final Context context, Intent intent) {\n TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);\n telephony.listen(new PhoneStateListener(){\n @Override\n public void onCallStateChanged(int state, String incomingNumber) {\n super.onCallStateChanged(state, incomingNumber);\n System.out.println("incomingNumber : "+incomingNumber);\n }\n },PhoneStateListener.LISTEN_CALL_STATE);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n要提供有关来电呼叫者的识别信息,请在 beginRequest(with:) 的实现中使用 addIdentificationEntry(withNextSequentialPhoneNumber:label:) 方法。
\n
class CustomCallDirectoryProvider: CXCallDirectoryProvider {\n override func beginRequest(with context: CXCallDirectoryExtensionContext) {\n let labelsKeyedByPhoneNumber: [CXCallDirectoryPhoneNumber: String] = [ \xe2\x80\xa6 ]\n for (phoneNumber, label) in labelsKeyedByPhoneNumber.sorted(by: <) {\n context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label) \n }\n\n context.completeRequest()\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n现在是坏消息:对于 Iphone,据我所知(2021 年),如果传入的电话号码不是用户的联系人或社交网络的一部分,那么开发者应用程序将无法访问该号码,这可以说是值得的。改变。
\n也许您可以执行类似后台进程之类的操作,在接到电话时进行屏幕截图,然后处理图像以提取电话号码。但我对 IOS 的经验很少,所以我什至不知道苹果是否允许这样做。无论如何,祝你好运,如果你成功了,请毫不犹豫地发布一个包,这绝对是一个很棒的包!
\n最后,您必须通过Pigeon实现类型安全平台通道:
\nimport \'generated_pigeon.dart\'\n\nvoid 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}\nRun Code Online (Sandbox Code Playgroud)\n\n\n使用 Pigeon 无需在主机和客户端之间匹配消息名称和数据类型的字符串。它支持:嵌套类、将消息分组到 API、生成异步包装器代码以及在任一方向发送消息。生成的代码是可读的,并且保证不同版本的多个客户端之间不会发生冲突。支持的语言包括 Objective-C、Java、Kotlin 和 Swift(通过 Objective-C 互操作)。
\n
| 归档时间: |
|
| 查看次数: |
1379 次 |
| 最近记录: |