创建Login with Amazon项目
在本部分中,您将学习如何为Login with Amazon (LWA) 创建新的Android项目、配置该项目以及向该项目添加代码以让用户使用Login with Amazon进行登录。如果您还没有可用来使用Login with Amazon的应用项目,则应立即按照以下适用于Android Studio的说明创建一个。如果您已有这样的应用,请跳至安装Login with Amazon库。
- 在Android Studio中创建新项目
- 安装Login with Amazon库
- 为项目设置网络权限
- 将API密钥添加到项目
- 处理活动的配置更改
- 向您的项目添加WorkflowActivity
- 将亚马逊购物应用添加到项目中
在Android Studio中创建新项目
- 启动Android Studio。
- 从File(文件)菜单中选择New(新建)和Project(项目)。
- 输入Application Name(应用程序名称)和Company Name(公司名称)。
- 输入与程序包名称对应的Application Name和Company Name,该程序包名称是您在对应用注册Login with Amazon时选择使用的名称。如果您尚未注册应用,请选择一个Package Name(程序包名称),然后在创建项目后按照注册Login with Amazon中的说明进行操作。如果应用的程序包名称与注册的程序包名称不匹配,则您的Login with Amazon调用将不会成功。
- 针对
API 16: Android 4.1 (JellyBean)或更高版本选择Minimum Required SDK(最低要求的SDK), 然后单击Next(下一步)。 - 选择要创建的活动类型,然后单击Next。
- 填写相关详细信息,然后单击Finish(完成)。
现在,您的工作区中将有一个新项目,可用于调用Login with Amazon。
安装Login with Amazon库
如果您尚未下载适用于Android的Login with Amazon SDK,请参阅安装适用于Android的Login with Amazon SDK。
- 使用电脑上的文件系统,在适用于Android的Login with Amazon SDK中找到login-with-amazon-sdk.jar文件。将其复制到剪贴板。
- 在Android Studio中打开您的项目后,打开Project View(项目视图)。
- 在Project View中右键单击项目/应用的父目录,然后选择Paste(粘贴)。
- 在Project View中右键单击login-with-amazon-sdk.jar,然后选择Add As Library(添加为库)。
为项目设置网络权限
要让您的应用使用Login with Amazon,则必须允许它访问互联网并访问网络状态信息。如果您的应用尚未声明这些权限,则必须在Android清单中声明这些权限。
- 在Project View中,双击AndroidManifest.xml将其打开。
-
复制下面的代码行并将它们粘贴到
application块之外的文件中:<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
示例:

将API密钥添加到项目
当您对Android应用注册Login with Amazon时,会向您分配API密钥。这是一种标识符,亚马逊授权管理器将用它来向Login with Amazon授权服务标识您的应用。
如果您使用亚马逊应用商店对您的应用进行签名,则亚马逊应用商店将自动提供API密钥。如果您不使用亚马逊应用商店,亚马逊授权管理器会在运行时从assets目录的api_key.txt文件加载此值。
- 如果您还没有API密钥,请参阅Android应用签名和API密钥,并按照检索Android API密钥下的说明进行操作。
- 在Android Studio的Project View中,右键单击
assets文件夹,然后单击New > File。如果您没有assets文件夹,请右键单击项目的父目录,然后选择New > Folder(文件夹)> Assets Folder(资产文件夹)。 - 将文件命名为api_key.txt。
- 现在,您应该可以看到名为api_key.txt的文本文件的编辑器窗口。将您的API密钥添加到文本文件中。
- 在File菜单中,单击Save(保存)。
api_key.txt文件添加额外字符(例如字节顺序标记),则当您尝试连接Login with Amazon授权服务时,可能会看到ERROR_ACCESS_DENIED。如果出现这种情况,请尝试删除任何前导或结尾空格、换行符或可疑字符。(例如,使用字节顺序标记的编辑器可能会在api_key.txt文件的开头添加0xEF 0xBB 0xBF或其他十六进制序列)。您也可以尝试检索新的API密钥。集成Login with Amazon和应用内购买的应用
使用亚马逊应用商店SDK或应用内购买SDK (IAP SDK) 的应用对API密钥存在单独的要求。
调试应用
对于应用的预发布或“调试”版本,必须创建API密钥并将其存储在项目中。
- 在项目的assets文件夹内创建一个名为
api_key.txt的文件。必须将该文件放置在此特定目录中。 - 插入API密钥作为此
api_key.txt文件中的唯一数据。
生产应用
对于应用的发布或“生产”版本,如果应用使用亚马逊应用商店SDK,则必须为应用的发布版本创建额外的API密钥。如果使用较旧的IAP SDK v2.0,并使用自己的证书为应用签名,您还必须为应用的发布版本创建API密钥。反之,如果您使用IAP SDK v2.0并授权亚马逊对您的应用签名,则无需创建额外的API密钥。如需查看摘要,请参阅下表:
| 使用亚马逊应用商店SDK | 发布应用自签名 | 生产或调试版本 | 如何对您的应用签名 |
|---|---|---|---|
| 生产 | 为发布应用自动生成和注入API密钥,无需执行其他任何操作。 | ||
| 生产 | 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。 | ||
| 生产 | 开发者必须在开发者控制台中使用发布证书哈希值创建API密钥,并将其添加到资产中。 | ||
| 生产 | 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。 | ||
| 任何 | 任何 | 调试 | 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。 |
要为现有应用创建API密钥,必须使用亚马逊应用商店证书哈希值,可通过以下步骤在开发者控制台中找到这些哈希值。
- 登录开发者控制台。
- 在导航栏中选择我的应用。
- 找到您的应用,展开该行,然后选择View(查看)以打开应用详情页。
- 在上传您的应用文件屏幕上,选择亚马逊应用商店证书哈希值。
处理活动的配置更改
如果用户在登录时更改屏幕方向或更改设备的键盘状态,则会收到重启当前活动的提示。此重启将意外关闭登录屏幕。为防止这种情况,您应该设置使用authorize方法的活动来手动处理这些配置更改。这将防止活动重启。
- 在Project View中,双击AndroidManifest.xml将该文件打开。
- 在Application块中,找到将处理Login with Amazon的活动(例如,MainActivity)。
-
将以下属性添加到您在步骤2中找到的活动中:
android:configChanges="keyboard|keyboardHidden|orientation"或者对于API 13或更高版本:
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" - 在File菜单中,单击Save。
现在,当键盘或设备方向发生变化时,Android会为您的活动调用onConfigurationChanged方法。除非您想为应用处理这些配置更改,否则您无需实现此功能。
向您的项目添加WorkflowActivity
当用户单击Login with Amazon按钮时,API将启动网页浏览器,向用户显示登录和同意页面。要让此浏览器活动起作用,您必须将WorkflowActivity添加到清单中。
如果您之前已集成过Login with Amazon SDK,或者在AndroidManifest.xml中声明了com.amazon.identity.auth.device.authorization.AuthorizationActivity活动,则必须将其删除并替换为WorkflowActivity。
- 在Project View中,双击AndroidManifest.xml将该文件打开。
-
在Application块中,添加以下代码:
<activity android:name="com.amazon.identity.auth.device.workflow.WorkflowActivity" android:theme="@android:style/Theme.NoDisplay" android:allowTaskReparenting="true" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <!-- android:host必须使用清单一般属性中的完整程序包名称--> <data android:host="${applicationId}" android:scheme="amzn"/> </intent-filter> </activity>
${applicationId}替换为此应用的程序包名称。将亚马逊购物应用添加到项目中
如果亚马逊购物应用安装在Android设备上,单击Login with Amazon按钮会触发API以启动亚马逊购物应用,并显示登录或同意页面。如果您的用户已经登录亚马逊购物应用,则他们无需再次登录。
为确保亚马逊购物应用的可见度,如果您的项目以Android 11(API级别30)或更高版本为目标,请在AndroidManifest.xml文件中加入以下部分。
- 在Project View中,双击AndroidManifest.xml将该文件打开。
- 复制下面的代码行并将它们粘贴到
application块之外的文件中:<queries > <intent> <action android:name="com.amazon.identity.auth.device.authorization.MapAuthorizationService"/> </intent> </queries>
Last updated: 2026年2月17日

