【问题标题】:If - Email Account with "@xyz.com" extension exist do something [Xamarin]如果 - 存在“@xyz.com”扩展名的电子邮件帐户做某事 [Xamarin]
【发布时间】:2017-01-11 17:57:53
【问题描述】:

我对 Xamarin 和 android 开发非常陌生,我开发了在我的公司中使用的简单小部件,但我需要限制应用程序:

如果 android 设备上的电子邮件帐户具有“@xyz.com”扩展名,则该应用程序将正常运行。

如果没有带有“@xyz.com”扩展名的电子邮件,应用程序将显示错误消息。

我的问题是如何在 android 设备中搜索所有帐户并检测“@xyz.com”扩展名。 如果有人有示例或代码段,那将非常有帮助。

我找到的最接近的例子是:

http://androidexample.com/Get_Registered_Email_Accounts_-_Android_Example/index.php?view=article_discription&aid=110

但我没有设法将其转换为 Xamarin。

非常感谢,

大卫

【问题讨论】:

  • 错误是什么?您为什么不设法将其转换为 C#?你自己尝试了什么?请阅读this guide,了解如何制定问题以增加获得可用答案的机会。

标签: android xamarin xamarin.android


【解决方案1】:

java转c#并不难,大部分API都封装在同名的Xamarin中。

有几种方法可以解决您的问题。例如,您可以使用AccountManager。要使用AccountManager,您需要打开您项目的properties 下的AndroidManifest.xml 并添加此权限:

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

然后例如这样的代码:

var emialPattern = Patterns.EmailAddress;
var accounts = AccountManager.Get(this).GetAccounts();
foreach (var account in accounts)
{
    if (emialPattern.Matcher(account.Name).Matches())
    {
        string email = account.Name;
        string[] emailarray = email.Split('@');
        if (emailarray[1] == "xyz.com")
        {
            //TODO:
        }
        else
        {
            //TODO:
        }
    }
}

我建议阅读这个案例的答案:How to get the Android device's primary e-mail address。下次如果您在尝试将 Java 代码转换为 c# 时遇到问题,请向我们展示您的尝试并发布您的代码。

【讨论】:

  • 非常感谢,这很有帮助!
猜你喜欢
  • 1970-01-01
  • 2020-11-08
  • 2013-07-09
  • 2014-10-28
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 2019-10-07
  • 1970-01-01
相关资源
最近更新 更多