【问题标题】:How to open add contact page on android platform in flutter?如何在flutter中打开android平台上的添加联系人页面?
【发布时间】:2020-01-10 20:44:06
【问题描述】:

我正在使用 Flutter 制作一个应用程序,该应用程序使用用户手机中的联系人(使用 contact_services 插件)。因此,它还需要提供使用系统默认添加联系人页面添加新联系人的能力。但是,contacts_services 中没有这样的功能。使用插件或现有的contact_services插件打开添加新联系人页面的方式是什么?

void openAddContacts() async{
if (Platform.isAndroid) {
  final AndroidIntent intent = AndroidIntent(
    action: 'ContactsContract.Intents.Insert.ACTION',
    category: 'ContactsContract.RawContacts.CONTENT_TYPE',
  );
  await intent.launch();
 }
}

【问题讨论】:

  • 我也在寻找这个功能,但什么也没找到。很遗憾,这么简单的基本功能使用起来并不容易。
  • 你有答案吗,请回复

标签: android flutter dart


【解决方案1】:

这可能会对您有所帮助:https://github.com/differenz-system/Addressbook.Flutter 或者,如果您想深入了解并想了解底层机制,我建议您使用 Platform Channel 与原生代码进行通信。这是 Google 为地址簿提出的示例:https://developers.google.com/protocol-buffers/docs/darttutorial

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
【解决方案2】:

如果你使用这个插件https://pub.dev/packages/contacts_service,你可以在这里查看完整的工作示例https://github.com/lukasgit/flutter_contacts/blob/master/example/lib/main.dart

添加权限

安卓#

将以下权限添加到您的 AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_CONTACTS" />  
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 

iOS #

在 Info.plist 文件中设置 NSContactsUsageDescription

<key>NSContactsUsageDescription</key>  
<string>This app requires contacts access to function properly.</string> 

然后您可以通过上面的链接使用示例中的代码。

【讨论】:

  • 感谢您的建议。但链接中的示例是应用内添加联系人页面。当您点击选择联系人中的“新联系人”按钮时,我正在尝试实现的目标与 whatsapp 所做的完全一样
  • 对不起,我没有完全理解你的问题。我做了一些小研究——你是对的,现在没有简单的方法来添加带有原生功能的“新联系人”。有可能做到,最好的办法是制作一个新的包并为Android和iOS实现这个功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多