我需要获取一个与用户而不是设备相关联的唯一标识符,因为我不想强迫用户在我的应用程序中注册,所以我希望从中获取电子邮件地址他的谷歌会员。
我在这个问题中看到了这个问题:How to get the android devices primary email adress
但我无法在这个问题上找到与Titanium相关的任何内容。有谁知道是否有办法这样做?
答案 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模块:
档案>新>移动模块项目
有关如何设置模块的更多信息,请参阅:
设置模块后,检索地址所需的方法是:
@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();
希望它可以提供帮助!如果事情不清楚,请不要说它。