【问题标题】:Open Contacts on device via icon tap flutter通过图标点击颤动在设备上打开联系人
【发布时间】:2019-11-14 19:13:15
【问题描述】:

是否可以通过颤动的图标点击打开设备上的联系人?我可以使用 url_launcher 的插件打开电话功能。我使用了联系人插件,但我们不需要从我们的应用程序中管理联系人,我们想使用电话功能来管理联系人。

【问题讨论】:

    标签: android flutter dart


    【解决方案1】:

    您可以使用 Flutter platform channels 和 android Intent.ACTION_VIEW intent 实现此目的。

    例如在您的MainActivity 注册新频道并启动联系人活动:

    MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
                launchContactActivity()
            }
    
    private fun launchContactActivity() {
            val intent = Intent(Intent.ACTION_VIEW)
            intent.type = ContactsContract.Contacts.CONTENT_TYPE
            startActivityForResult(intent, REQUEST_CODE)
        }
    

    在颤振方面:

    void launchContacts() async {
        try {
          await platform.invokeMethod('launch');
        } on PlatformException catch (e) {
          print("Failed to launch contacts: ${e.message}");
        }
        setState(() {
        });
      }
    

    请参阅full example。希望对您有所帮助。

    【讨论】:

    • 我下载了示例并让它运行,但我无法在我的应用程序中实现它我错过了什么吗?错误出现在 static const platform = const MethodChannel('flutter_contacts/launch_contacts'); , 它说缺少插件实现,我查找了该文件并导入,但在示例中没有看到。
    • 请检查活动中的android原生部分:github.com/pavelshackih/flutter_contacts/blob/master/android/…
    • 我正在尝试镜像所有 mainactivity 依赖项,但出现错误,Kotlin 是否缺少某些内容?我从未将它包含在我的项目中:错误“无法访问内置声明 'kotlin.Unit'。确保您依赖于 Kotlin 标准库”
    • 是的。在 Android Studio 中单击打开现有 Android Studio 项目,然后打开 /android/build.gradle。同步后它应该可以工作了。
    • 你能分享你项目中可重现的部分吗?您可以在 Android Studio 的主面板上找到同步按钮。
    【解决方案2】:

    可能你不能直接。

    但是您可以使用contacts_service 包获取它们及其信息。

    希望对你有帮助。

    【讨论】:

    • 我用过,我们不想把它们拉进去飞镖,只需打开内置功能
    • 有人找到解决方案了吗?
    • 有什么解决办法吗?还在找,请帮忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多