未找到任何结果

尝试其他或更具体的查询

创建Login with Amazon项目

创建Login with Amazon项目

本节将介绍如何为Login with Amazon创建和配置新的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(应用)Company Name(公司名称)。data-content程序包名称是Android应用的唯一标识符,通常形式为<code>com.companyname.appname</code>。data-content程序包名称是您在为应用注册Login with Amazon时选择的。如果您的应用尚未注册,请先选择程序包名称,项目创建完成后再遵循注册Login with Amazon中的说明进行操作。如果您的应用程序包与注册程序包名称不匹配,则无法成功进行Login with Amazon调用。
  5. 选择Minimum Required SDK(最低要求的SDK)API 11: Android 3.0 (Honeycomb)或更高版本,然后单击Next(下一步)。您也可以使用Minimum Required SDK(最低要求的SDK)API 8: Android 2.2 (Froyo)或更高版本(使用v4 Android支持库时)。
  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"/>
    

示例:

edited 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(Assets文件夹)
  3. 将文件命名为api_key.txt
  4. 现在,编辑器窗口将用来处理名为api_key.txt的文本文件。将您的API密钥添加到文本文件
  5. File(文件)菜单中,单击Save(保存)

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

使用Appstore SDK或应用内购买SDK (IAP SDK)的应用对API密钥有单独要求。

调试应用

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

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

生产应用

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

可以在开发者控制台中找到亚马逊应用商店证书哈希值,为现有应用创建API密钥。转到我的应用程序 > 选择您的应用 > 上传APK文件 > 应用商店证书哈希值

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

为您的活动处理配置更改

如果用户在登录时更改屏幕方向或者设备键盘状态,将会触发当前活动进行重新启动。重启将会意外关闭登录界面。为防止出现这种情况,应将活动设置为使用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 must use the full package name found in Manifest General Attributes -->
                <data android:host="${applicationId}" android:scheme="amzn"/>
            </intent-filter>
        </activity>