使用Titanium检索用户的邮件

时间:2014-07-11 07:50:49

标签: android titanium

我需要获取一个与用户而不是设备相关联的唯一标识符,因为我不想强迫用户在我的应用程序中注册,所以我希望从中获取电子邮件地址他的谷歌会员。

我在这个问题中看到了这个问题:How to get the android devices primary email adress

但我无法在这个问题上找到与Titanium相关的任何内容。有谁知道是否有办法这样做?

2 个答案:

答案 0 :(得分:1)

尝试Login with Google (Oauth 2.0),commonJS模块,它允许您使用Google OAuth 2.0对用户进行身份验证,然后使用Google API。下载zip文件并解压缩。它还包含一个示例项目。要测试示例项目,请确保您具有CLIENT_ID或CLIENT_SECRET。

希望它能帮到你!

答案 1 :(得分:0)

好吧,我回过头来解决这个问题并找到了解决方案,这里是从Titanium中获取Android电子邮件地址的方法。 解决方案是直接通过Titanium模块使用Android类。

首先,您必须创建一个Titanium模块:

  

档案>新>移动模块项目

有关如何设置模块的更多信息,请参阅:

Wiki Appcelerator

Docs Appcelerator

设置模块后,检索地址所需的方法是:

@Kroll.method
public String getAccountMail()
{
    TiApplication appContext = TiApplication.getInstance();

    AccountManager manager = (AccountManager) appContext.getSystemService(Context.ACCOUNT_SERVICE);
    Account[] list = manager.getAccounts();

    return list.length > 0 ? list[0].name : null; 
}

就个人而言,我选了第一个,但你可以用这个清单做任何你想做的事。 我在这个答案中找到了样本: https://stackoverflow.com/a/7372239/1471580

然后,不要忘记为您的应用添加权限:

<android xmlns:android="http://schemas.android.com/apk/res/android">
    <manifest>
        <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    </manifest>
</android>

您需要发布模块才能使用它,您可以在我的第一个链接中找到它。

最后,您可以像这样使用它:

var module = require("namespace"); // exemple: "com.enterprise.project"
var mail = module.getAccountMail();

希望它可以提供帮助!如果事情不清楚,请不要说它。