as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases

创建Login with Amazon项目

创建Login with Amazon项目

在本部分中,您将学习如何为Login with Amazon (LWA) 创建新的Android项目、配置该项目以及向该项目添加代码以让用户使用Login with Amazon进行登录。如果您还没有可用来使用Login with Amazon的应用项目,则应立即按照以下适用于Android Studio的说明创建一个。如果您已有这样的应用,请跳至安装Login with Amazon库

在Android Studio中创建新项目

  1. 启动Android Studio
  2. File(文件)菜单中选择New(新建)和Project(项目)。
  3. 输入Application Name(应用程序名称)和Company Name(公司名称)。
  4. 输入与程序包名称对应的Application NameCompany Name,该程序包名称是您在对应用注册Login with Amazon时选择使用的名称。如果您尚未注册应用,请选择一个Package Name(程序包名称),然后在创建项目后按照注册Login with Amazon中的说明进行操作。如果应用的程序包名称与注册的程序包名称不匹配,则您的Login with Amazon调用将不会成功。
  5. 针对API 16: Android 4.1 (JellyBean) 或更高版本选择Minimum Required SDK(最低要求的SDK), 然后单击Next(下一步)。
  6. 选择要创建的活动类型,然后单击Next
  7. 填写相关详细信息,然后单击Finish(完成)。

现在,您的工作区中将有一个新项目,可用于调用Login with Amazon。

安装Login with Amazon库

如果您尚未下载适用于Android的Login with Amazon SDK,请参阅安装适用于Android的Login with Amazon SDK

  1. 使用电脑上的文件系统,在适用于Android的Login with Amazon SDK中找到login-with-amazon-sdk.jar文件。将其复制到剪贴板。
  2. 在Android Studio中打开您的项目后,打开Project View(项目视图)。
  3. Project View中右键单击项目/应用的父目录,然后选择Paste(粘贴)。
  4. Project View中右键单击login-with-amazon-sdk.jar,然后选择Add As Library(添加为库)。

为项目设置网络权限

要让您的应用使用Login with Amazon,则必须允许它访问互联网并访问网络状态信息。如果您的应用尚未声明这些权限,则必须在Android清单中声明这些权限。

  1. Project View中,双击AndroidManifest.xml将其打开。
  2. 复制下面的代码行并将它们粘贴到application块之外的文件中:

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

示例:

编辑的androidmanifest.xml

将API密钥添加到项目

当您对Android应用注册Login with Amazon时,会向您分配API密钥。这是一种标识符,亚马逊授权管理器将用它来向Login with Amazon授权服务标识您的应用。

如果您使用亚马逊应用商店对您的应用进行签名,则亚马逊应用商店将自动提供API密钥。如果您不使用亚马逊应用商店,亚马逊授权管理器会在运行时从assets目录的api_key.txt文件加载此值。

  1. 如果您还没有API密钥,请参阅Android应用签名和API密钥,并按照检索Android API密钥下的说明进行操作。
  2. 在Android Studio的Project View中,右键单击assets文件夹,然后单击New > File。如果您没有assets文件夹,请右键单击项目的父目录,然后选择New > Folder(文件夹)> Assets Folder(资产文件夹)。
  3. 将文件命名为api_key.txt
  4. 现在,您应该可以看到名为api_key.txt的文本文件的编辑器窗口。将您的API密钥添加到文本文件中。
  5. File菜单中,单击Save(保存)。

集成Login with Amazon和应用内购买的应用

使用亚马逊应用商店SDK或应用内购买SDK (IAP SDK) 的应用对API密钥存在单独的要求。

调试应用

对于应用的预发布或“调试”版本,必须创建API密钥并将其存储在项目中。

  1. 在项目的assets文件夹内创建一个名为api_key.txt的文件。必须将该文件放置在此特定目录中。
  2. 插入API密钥作为此api_key.txt文件中的唯一数据。

生产应用

对于应用的发布或“生产”版本,如果应用使用亚马逊应用商店SDK,则必须为应用的发布版本创建额外的API密钥。如果使用较旧的IAP SDK v2.0,并使用自己的证书为应用签名,您还必须为应用的发布版本创建API密钥。反之,如果您使用IAP SDK v2.0并授权亚马逊对您的应用签名,则无需创建额外的API密钥。如需查看摘要,请参阅下表:

确定是否需要为应用创建API密钥
使用亚马逊应用商店SDK 发布应用自签名 生产或调试版本 如何对您的应用签名
生产 为发布应用自动生成和注入API密钥,无需执行其他任何操作。
生产 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。
生产 开发者必须在开发者控制台中使用发布证书哈希值创建API密钥,并将其添加到资产中。
生产 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。
任何 任何 调试 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。

要为现有应用创建API密钥,必须使用亚马逊应用商店证书哈希值,可通过以下步骤在开发者控制台中找到这些哈希值。

  1. 登录开发者控制台。
  2. 在导航栏中选择我的应用
  3. 找到您的应用,展开该行,然后选择View(查看)以打开应用详情页。
  4. 上传您的应用文件屏幕上,选择亚马逊应用商店证书哈希值

处理活动的配置更改

如果用户在登录时更改屏幕方向或更改设备的键盘状态,则会收到重启当前活动的提示。此重启将意外关闭登录屏幕。为防止这种情况,您应该设置使用authorize方法的活动来手动处理这些配置更改。这将防止活动重启。

  1. Project View中,双击AndroidManifest.xml将该文件打开。
  2. Application块中,找到将处理Login with Amazon的活动(例如,MainActivity)。
  3. 将以下属性添加到您在步骤2中找到的活动中:

    android:configChanges="keyboard|keyboardHidden|orientation"
    

    或者对于API 13或更高版本:

    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    
  4. File菜单中,单击Save

现在,当键盘或设备方向发生变化时,Android会为您的活动调用onConfigurationChanged方法。除非您想为应用处理这些配置更改,否则您无需实现此功能。

向您的项目添加WorkflowActivity

当用户单击Login with Amazon按钮时,API将启动网页浏览器,向用户显示登录和同意页面。要让此浏览器活动起作用,您必须将WorkflowActivity添加到清单中。

如果您之前已集成过Login with Amazon SDK,或者在AndroidManifest.xml中声明了com.amazon.identity.auth.device.authorization.AuthorizationActivity活动,则必须将其删除并替换为WorkflowActivity

  1. Project View中,双击AndroidManifest.xml将该文件打开。
  2. 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>
    

将亚马逊购物应用添加到项目中

如果亚马逊购物应用安装在Android设备上,单击Login with Amazon按钮会触发API以启动亚马逊购物应用,并显示登录或同意页面。如果您的用户已经登录亚马逊购物应用,则他们无需再次登录。

为确保亚马逊购物应用的可见度,如果您的项目以Android 11(API级别30)或更高版本为目标,请在AndroidManifest.xml文件中加入以下部分。

  1. Project View中,双击AndroidManifest.xml将该文件打开。
  2. 复制下面的代码行并将它们粘贴到application块之外的文件中:
    <queries >
        <intent>
           <action android:name="com.amazon.identity.auth.device.authorization.MapAuthorizationService"/>
       </intent>
    </queries>
    

Last updated: 2026年2月17日