Android设备是否具有唯一ID,如果是这样,使用Java访问它的简单方法是什么?
我正在尝试在Android中创建邮件发送应用程序.
如果我使用:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
Run Code Online (Sandbox Code Playgroud)
这将启动内置的Android应用程序; 我正在尝试直接发送邮件,而不使用此应用程序.
我最近遇到了这个应用程序购买应用程序,它以某种方式能够检索我在使用我的谷歌帐户登录后在谷歌播放中支付的应用程序.
我正试图找出它是如何完成的,因为我想构建一个类似的应用程序,但对于下载的免费应用程序.
但是,即使经过整个API列表,我也无法找到用于检索该信息的OAuth API Scope .
编辑:我正在对这个问题提出新的赏金,正如我在这里提出的一个类似的问题所提出的那样,因为在这里和那里我没有看到关于如何做到的真正答案,以及可以做些什么用它.
我想将问题细化为多个部分:
什么是可用于获取已购买应用程序信息的API?我在哪里可以阅读它?请展示如何操作的完整实用示例.
可以做得更多吗?也许执行搜索?也许显示已安装的免费应用程序?也许是他们安装和卸载的时间?那些应用程序的类别?
使用此API有什么特殊要求吗?
编辑:我正在为此付出最大的赏金,因为无论我阅读和尝试了多少,我仍然无法制作可以从用户下载的Play商店查询应用程序的POC(名称,包装)名称,安装和/或删除日期,图标URL,价格...),包括付费和免费应用程序.
如果有人找到了工作样本,请展示它是如何完成的,并展示您是如何找到它的(文档或任何导致您获得解决方案的内容).我无法在任何地方找到它,而这里目前的解决方案对我来说太模糊了.
我想允许用户在没有输入的情况下向我提供他们的电子邮件地址.理想情况下,有一个文本字段,用户可以键入电子邮件地址或按下按钮自动填充它.
在之前的一个问题中,Roman Nurik建议使用AccountManager来处理这个问题,但这需要我的应用程序使用GET_ACCOUNTS权限; 然后我的应用程序可以访问设备上的所有用户帐户,包括他们的Facebook/Twitter帐户.这个许可对我想要的东西来说似乎过于宽泛.
有没有更好的方法来处理这个不需要授予我的应用程序这么重的权限?
我有,android.permission.READ_OWNER_DATA但我找不到任何可靠的代码,可以解释如何阅读设备所有者的电子邮件地址.我怎样才能做到这一点?
我想获得购买用户的名称/ ID.AccountManager如果可能的话,我想不这样做,因为它的使用需要额外的许可.即使AccountManager我没有看到确定当前账户的方法,所以欢迎任何建议.
android in-app-billing android-account google-play android-billing
我已经看到过使用AccountManager的提法,例如通过Android访问Google帐户ID /用户名,但它似乎是为了抓住authtoken?
我只需要访问用户名,没有密码或任何身份验证令牌.
我正在使用android 2.1 sdk.
为了管理用户偏好,目前我正在抓取谷歌用户名(实际上是他们已经注册到设备的电子邮件地址)并使用(散列)作为"用户ID"来区分不同的用户.与此处描述的内容类似.
这一切都运行正常,但有些用户(可以理解)被任何许可吓到了,似乎给应用程序一些邪恶的力量来浏览他们的帐户信息或联系人.
编辑:谷歌现在在Android 6 运行时权限模式中实现权限组的方式更加严重.他们已经进入了许可组.现在,为了生成唯一的匿名用户ID,必须向用户显示一个对话框,其中显示:GET_ACCOUNTSCONTACTS
允许此应用访问您的联系人?| 拒绝| 允许|
这有多误导?我的应用程序不希望访问联系人,但要求用户授予该应用程序访问联系人的权限!是的,有机会向用户解释一个单独的对话框,事实上,不需要访问联系人,但是他们仍然得到股票系统对话框,要求他们授予访问联系人的权限......自然他们会想"如果不需要访问联系人,为什么我被要求授予此权限?" 并且"我真的相信开发者吗?他们说不需要访问联系人,但这是真的吗?"......非常混乱,用户体验非常糟糕恕我直言(以及其他人的意见).
我宁愿避免所有这些麻烦和混乱,并获得唯一的用户ID,而无需特殊权限.
那么SDK中是否有一个库存函数或方法,它将为用户返回唯一的用户ID,而不需要任何其他权限?如果没有,我会感到很惊讶,因为想要做的事情似乎很常见......拥有用于管理应用用户的用户ID.
两点:
(a)我只需要一个匿名用户ID ......我实际上并不需要用户的电子邮件地址,也不需要用户的电子邮件地址.因此,我无法getUserID()理解为什么谷歌无法提供返回唯一匿名ID的方法,而无需向应用授予特殊权限.
(b)它必须是用户ID,而不是设备ID,以便它可以在注册到同一个Google帐户的所有用户设备上运行.
谢谢.
我正在开发一个项目,我必须使用用户的主电子邮件自动填充EditText,我将主要电子邮件视为与Google Play商店相关联的电子邮件.我已阅读这个帖子并实现了,
如果我们使用AccountManager类来设置电子邮件ID,我们将获得该电话中添加的所有电子邮件ID,因此这是不可能的,有些人说要获取AccountManager返回的第一个电子邮件ID,但是返回第一次在手机中添加的电子邮件ID.
即,假设我添加了test@gmail.com并将其与google play相关联,之后我添加了test_new@gmail.com并将此帐户与Play商店相关联,此时我正在使用此帐户的Play商店.如果我写了如下代码;
Account[] accountList = AccountManager.get(this).getAccountsByType("com.google");
Log.d("Play store account:" , accountList[0].name);
Run Code Online (Sandbox Code Playgroud)
声明的预期输出是test_new@gmail.com,但我得到test@gmail.com
有什么方法可以解决这个问题吗?
请帮我提出你的想法.
以下是我的问题: -
我需要一个上面的解决方案,因为我正在考虑我的应用程序中的一个场景,它是:
Please note that I don't want to use any web service to store the account id & device id of the user at my side. android ×10
google-play ×4
java ×2
email ×1
google-oauth ×1
jakarta-mail ×1
permissions ×1
username ×1