> For the complete documentation index, see [llms.txt](https://cydonia.gitbook.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cydonia.gitbook.io/doc/cydonia-sdk/android-integration/android-sdk-api-doc/1.1-account.md).

# 1.1 账号部分

## 1.1.1 游客登录

**说明**

* 登陆方式选择界面，点击GameStart按钮调用此API

**接口**

```
public void guestLogin(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* 无参数

**示例**

```java
mCydoniaSDK.guestLogin(new CydoniaJPSDKCallbackListener() {
                    @Override
                    public void onResult(String params) {
                        System.out.println("Demo guestLogin onResult:"+params);
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", userId:" + dataObject.get("userId")
                                        + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo guestLogin result:" + "status:" + resultObject.get("status")
                                        + ", userId:" + dataObject.get("userId") + ", message:" + resultObject.get("msg"));

                            }else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo guestLogin result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }


                    }
                });
```

## 1.1.2 获取SDK玩家ID <a href="#id-1-1-2-getplayerid" id="id-1-1-2-getplayerid"></a>

**说明**

* 获取SDK发行的userID，每个玩家的userID是唯一的
* 此userID在其他登陆方式的返回中也会返回

**接口**

```
public String getUserId()
```

**参数说明**

* 无参数

**示例**

```
String userId = mCydoniaSDK.getUserId();
```

## 1.1.3 获取继承ID <a href="#id-1-1-3-getmigrateid" id="id-1-1-3-getmigrateid"></a>

**说明**

* 获取继承ID，显示在继承密码设定界面

**接口**

```
public void getMigrateId(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* 无参数

**示例**

```java
mCydoniaSDK.getMigrateId(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        // Log.d(SDKDEMOTAG, response);
                        System.out.println("Demo getMigrateId response:"+params);
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", migrateId:"
                                        + dataObject.get("migrateId") + ", message:" + resultObject.get("msg"));

                                System.out.println("Demo getMigrateId result ok:" + "status:" + resultObject.get("status")
                                        + ", migrateId:" + dataObject.get("migrateId") + ", message:" + resultObject.get("msg"));

                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo getMigrateId result error:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }


                        }catch (JSONException e) {
                            e.printStackTrace();
                        }


                    }
                });
```

## 1.1.4 玩家登出 <a href="#id-1-1-4-logout" id="id-1-1-4-logout"></a>

**说明**

* 如果有玩家登出按钮需调用此API

**接口**

```
public void userLogout()
```

**参数说明**

* 无参数

**示例**

```
mCydoniaSDK.userLogout();
```

## 1.1.5 是否设定过继承密码 <a href="#id-1-1-5-issetpass" id="id-1-1-5-issetpass"></a>

**说明**

* 检测该账号是否设定过继承密码

**接口**

```
public Boolean isPasswordSet()
```

**参数说明**

* 无参数

**示例**

```java
if (mCydoniaSDK.isPasswordSet()) {
    Log.d(SDKDEMOTAG, "you have set password");
    System.out.println("Demo isPasswordSet: yes");
  } else {
    Log.d(SDKDEMOTAG, "password is not set yet");
    System.out.println("Demo isPasswordSet: no");
  }
```

## 1.1.6 设定继承密码 <a href="#id-1-1-6-setpass" id="id-1-1-6-setpass"></a>

**说明**

* 给账号设定继承密码

**接口**

```
public void setMigratePass(String pass1, String pass2, final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* pass1: 玩家第一次输入的密码
* pass2: 玩家第二次输入的密码

**示例**

```java
mCydoniaSDK.setMigratePass(pass1, pass2, new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                            System.out.println("Demo setMigratePass result:" + "status:" + resultObject.get("status")
                                    + ", message:" + resultObject.get("msg"));

                        }catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                });
```

## 1.1.7 玩家继承 <a href="#id-1-1-7-integration" id="id-1-1-7-integration"></a>

**说明**

玩家在另一台设备通过继承ID和继承密码来继承登录游戏的时候调用此API

**接口**

```
public void migratedevice(String migrateId, String password, final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* migrateId: 玩家输入的继承ID
* password: 玩家输入的继承密码

**示例**

```java
mCydoniaSDK.migratedevice(mId, mPass, new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        // Log.d(SDKDEMOTAG, response);
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");

                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", userId:" + dataObject.get("userId")
                                        + ", migrateId:" + dataObject.get("migrateId") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo migratedevice result:" + "status:" + resultObject.get("status")
                                        + ", userId:" + dataObject.get("userId") + ", migrateId:" + dataObject.get("migrateId")
                                        + ", message:" + resultObject.get("msg"));
                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo migratedevice result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                });
```

## 1.1.8 SNS账号部分 <a href="#id-1-1-8-sns" id="id-1-1-8-sns"></a>

几种SNS登录方式类同，仅拿一种进行说明。

SNS分享只有Twitter和Facebook两种SNS有。

### Twitter部分 <a href="#twitter" id="twitter"></a>

#### 1.1.8.1 Twitter账号是否绑定

**说明**

判断Twitter账号是够绑定

**接口**

```
public Boolean isTwitterBind()
```

**参数说明**

无

**示例**

```java
//Twitter是否绑定
if(mCydoniaSDK.isTwitterBind()){
    System.out.println("Demo isTwitterBind: yes");
}else{
    System.out.println("Demo isTwitterBind: no");
}
```

#### **1.1.8.2 绑定Twitter账号**

**说明**

对于还没有绑定Twitter账号的玩家，可以通过此API实现绑定

**接口**

```
public void bindTwitter(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

无

**示例**

```java
//绑定Twitter
                mCydoniaSDK.bindTwitter(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                System.out.println("Demo bindTwitter success");
                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo bindTwitter failed result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                } );
```

#### **1.1.8.3 Twitter账号解绑**

**说明**

对于已经绑定过Twitter账号的玩家，可以通过此API实现解绑

**接口**

```
public void unbindTwitter(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

无

**示例**

```java
//unBindTwitter
                mCydoniaSDK.unbindTwitter(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {

                        try {
                            JSONObject resultObject = new JSONObject(params);

                            if (resultObject.getInt("status") == 200) {
                                System.out.println("Demo unbindTwitter success");
                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo unbindTwitter failed result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }



                    }
                } );
```

#### **1.1.8.4 Twitter账号登录**

**说明**

使用Twitter账号登录游戏，返回数据的数据结构与游客登录方式

**接口**

```
-(void) twitterMigrate:(SDKResponseBlock) sdkResponse;
```

**参数说明**

无

**示例**

```java
//Twitter登录
                //如果登录成功，返回的数据与普通玩家登陆相同
                mCydoniaSDK.twitterMigrate(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {

                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");
                                System.out.println("Demo twitterMigrate result:" + "status:" + resultObject.get("status")
                                        + ", userId:" + dataObject.get("userId") + ", message:" + resultObject.get("msg"));

                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo twitterMigrate failed result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                } );
```

#### 1.1.8.5 Twitter账号分享

**说明**

Twitter和Facebook提供了分享功能

**接口**

```
public void twitterShareMsgTagsAndImage( String textMsg, String hashTags, Uri imageUri )
```

**参数说明**

* textMsg：Twitter需要分享的文本
* hashTags: 需要使用的hashTag
* imgUri：图片文件的路径

**示例**

```java
//uri为必须,格式参照https://github.com/twitter/twitter-kit-android/wiki/Compose-Tweets
//The image Uri should be a Uri using the content:// scheme
//image Uri使用 content:// sheme
File imgFile = new File("/storage/emulated/0/Download/a.jpg");
Uri imageUri = getImageContentUri(MainActivity.this, imgFile);
mCydoniaSDK.twitterShareMsgTagsAndImage("Hello World Message", "#sdk", imageUri);
```

### ~~Facebook部分~~ <a href="#facebook" id="facebook"></a>

```
public Boolean isFacebookBind()
public void bindFacebook(final CydoniaJPSDKCallbackListener sdkCallback)
public void unbindFacebook(final CydoniaJPSDKCallbackListener sdkCallback)
public void facebookMigrate(final CydoniaJPSDKCallbackListener sdkCallback)
public void facebookShareMsgTagsAndImage( String hashTags, Uri imageUri ,final CydoniaJPSDKCallbackListener sdkCallback)
```

~~\*Facebook分享不允许给默认信息~~

### Google部分 <a href="#google" id="google"></a>

```
public void googleMigrate(final CydoniaJPSDKCallbackListener sdkCallback)
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cydonia.gitbook.io/doc/cydonia-sdk/android-integration/android-sdk-api-doc/1.1-account.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
