You need to enable JavaScript to run this app.
云手机

云手机

复制全文
Go SDK
应用管理
复制全文
应用管理

阅读本文,您可以获取 Go SDK 应用管理的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档查看。

前提条件

调用接口前,请先完成 Go SDK 的安装及初始化操作。

调用示例

本节为您介绍应用管理相关接口的功能和调用示例。

启动应用 LaunchApp

您可以调用 LaunchApp 接口启动应用 LaunchApp。详细的参数说明可参见 LaunchApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.LaunchAppBody{
		// 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。
		ProductID: `1608456935646xxxxxx`,
		// 需要启动的应用包名或组件名,例如:
		// <li> 应用包名:com.example.appname </li>
		// <li> 组件名(缩写形式):com.example.appname/.MainActivity </li>
		// <li> 组件名(完整形式的 Activity):com.example.appname/com.example.appname.MainActivity </li>
		// <li> 组件名(完整形式的 Service):com.example.appname/com.example.appname.MainService </li>
		PackageName: `com.mt.mtxx.mtxx`,
	}

	// 指定实例 ID 列表执行应用启动任务。
	PodIDList := []string{"7299381659819xxxxxx"}

	body.PodIDList = PodIDList

	resp, err := service.LaunchApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

批量启动应用 LaunchApps

您可以调用 LaunchApps 接口批量启动应用 LaunchApps。详细的参数说明可参见 LaunchApps 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.LaunchAppsBody{
		// 实例所归属的业务 ID。可通过调用 [ListPod](https://www.volcengine.com/docs/6394/75749) 接口获取。
		ProductID: `73301***716136236`,
		// 实例 ID。可通过调用 [ListPod](https://www.volcengine.com/docs/6394/75749) 接口获取。
		PodID: `73301074***6136236`,
	}

	// 包名列表,最大长度 20。可通过调用 [GetPodAppList](https://www.volcengine.com/docs/6394/658689) 接口获取。
	PackageNameList := []string{"com.android.settings", "com.android.documentsui1"}

	body.PackageNameList = PackageNameList

	resp, err := service.LaunchApps(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

安装应用 InstallApp

您可以调用 InstallApp 接口安装应用 InstallApp。详细的参数说明可参见 InstallApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtrs(vals []string) []*string {
	ptrs := make([]*string, len(vals))
	for i := 0; i < len(vals); i++ {
		ptrs[i] = &vals[i]
	}
	return ptrs
}

func Int32Ptr(v int32) *int32 {
	return &v
}

func BoolPtr(v bool) *bool {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.InstallAppBody{
		// 应用 ID,可通过调用 [ListApp](https://www.volcengine.com/docs/6394/1226894) 接口获取。
		AppID: `7278660795155xxxxxx`,
		// 应用版本 ID,可通过调用 [ListApp](https://www.volcengine.com/docs/6394/1226894) 接口获取。
		VersionID: `7278660795155xxxxxx`,
		// 业务 ID。
		// note:
		// 如不指定 PodIdList 及 TagIdList,则安装应用到业务下的所有实例。
		ProductID: `1608456935646xxxxxx`,
		// 应用安装类型:
		// <li> 0:(默认)机身存储独立安装(非共享) </li>
		// <li> 1:共享安装 </li>
		InstallType:  Int32Ptr(0),
		IsPreinstall: BoolPtr(false),
	}

	// 指定实例 ID 列表进行应用安装。
	PodIDList := []string{"7299381659819xxxxxx"}

	body.PodIDList = StringPtrs(PodIDList)

	// 指定标签 ID 列表进行应用安装。可通过 [ListTag](https://www.volcengine.com/docs/6394/1221497) 获取。
	TagIDList := []string{"test01"}

	body.TagIDList = StringPtrs(TagIDList)

	resp, err := service.InstallApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

批量安装应用 InstallApps

您可以调用 InstallApps 接口批量安装应用 InstallApps。详细的参数说明可参见 InstallApps 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func Int32Ptr(v int32) *int32 {
	return &v
}

func BoolPtr(v bool) *bool {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.InstallAppsBody{
		// 业务 ID,可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1608456935646xxxxxx`,
		// 指定实例 ID 进行应用安装。
		PodID: `7299381659819xxxxxx`,
		// 应用安装类型:
		// <li> 0:(默认)机身存储独立安装(非共享) </li>
		// <li> 1:共享安装 </li>
		InstallType: Int32Ptr(0),
		// 用于标记应用是否为预安装应用:
		// <li> true:是; </li>
		// <li> false:否。 </li>
		// 当标记某应用为预安装应用后,重置实例时可选择是否保留该应用及相关数据。具体参看 [ResetPod](https://www.volcengine.com/docs/6394/1221459) 接口的 PreInstallAppPersistedType 字段说明。
		IsPreinstall: BoolPtr(false),
	}

	// 待安装的应用列表。
	AppList1 := ACEP.InstallAppsBodyAppListItem{
		// 应用 ID,可通过调用 [ListApp](https://www.volcengine.com/docs/6394/1226894) 接口获取。
		AppID: `7278660795155xxxxxx`,
		// 应用版本 ID,可通过调用 [ListApp](https://www.volcengine.com/docs/6394/1226894) 接口获取。
		VersionID: `7278660795155xxxxxx`,
	}

	body.AppList = append(body.AppList, AppList1)

	resp, err := service.InstallApps(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

查询应用信息列表 ListApp

您可以调用 ListApp 接口查询应用信息列表 ListApp。详细的参数说明可参见 ListApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtr(v string) *string {
	return &v
}

func Int64Ptr(v int64) *int64 {
	return &v
}

func Int32Ptr(v int32) *int32 {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	query := &ACEP.ListAppQuery{
		// 业务 ID,可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1591495366954xxxxxx`,
		// 筛选条件,应用 ID。
		AppID: StringPtr(`7295222843434xxxxxx`),
		// 筛选条件,应用名称。
		AppName: StringPtr(`test`),
		// 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 Offset 为 10,则表示从第 11 条记录开始。默认值为 0。
		// note:
		// 可与 Count 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。
		Offset: Int64Ptr(0),
		// 单次查询返回的最大记录数,用于控制每次查询返回的数据量。例如,若 Count 为 100,则表示在查询数据时,系统将每次返回 100 条记录。
		// note:
		// 可与 Offset 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。
		Count: Int64Ptr(10),
		// 应用类型:
		// <li> 0:其他 </li>
		// <li> 1:视频 </li>
		// <li> 2:游戏 </li>
		// <li> 3:效率 </li>
		// <li> 4:办公 </li>
		AppType: Int32Ptr(2),
	}

	resp, err := service.ListApp(context.Background(), query)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

查询应用版本部署信息列表 ListAppVersionDeploy

您可以调用 ListAppVersionDeploy 接口查询应用版本部署信息列表 ListAppVersionDeploy。详细的参数说明可参见 ListAppVersionDeploy 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtr(v string) *string {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	query := &ACEP.ListAppVersionDeployQuery{
		// 业务 ID,可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1591495366954xxxxxx`,
		// 应用 ID,可通过调用 [ListApp](https://www.volcengine.com/docs/6394/1226894) 接口获取。
		AppID: `7291927828638xxxxxx`,
		// 应用版本 ID,可通过调用 [ListApp](https://www.volcengine.com/docs/6394/1226894) 接口获取。
		VersionID: StringPtr(`7280422115605xxxxxx`),
	}

	resp, err := service.ListAppVersionDeploy(context.Background(), query)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

查询应用信息 DetailApp

您可以调用 DetailApp 接口查询应用信息 DetailApp。详细的参数说明可参见 DetailApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	query := &ACEP.DetailAppQuery{
		// 业务 ID,可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1591495366954xxxxxx`,
		// 应用 ID,可通过调用 [ListApp](https://www.volcengine.com/docs/6394/1226894) 接口获取。
		AppID: `7291189096629xxxxxx`,
	}

	resp, err := service.DetailApp(context.Background(), query)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

卸载应用 UninstallApp

您可以调用 UninstallApp 接口卸载应用 UninstallApp。详细的参数说明可参见 UninstallApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtrs(vals []string) []*string {
	ptrs := make([]*string, len(vals))
	for i := 0; i < len(vals); i++ {
		ptrs[i] = &vals[i]
	}
	return ptrs
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.UninstallAppBody{
		// 业务 ID。
		// 如不指定 PodIdList 及 TagIdList,则对业务下所有实例进行应用卸载。
		ProductID: `1608456935646xxxxxx`,
		// 应用 ID,可通过调用 ListApp 接口获取。
		AppID: `7291927828638xxxxxx`,
	}

	// 指定实例 ID 列表进行应用卸载。单次接口调用最多支持对 1000 个实例进行应用卸载。
	PodIDList := []string{"7299381659819xxxxxx"}

	body.PodIDList = StringPtrs(PodIDList)

	// 指定标签 ID 列表进行应用卸载。
	TagIDList := []string{"7287856160832xxxxxx"}

	body.TagIDList = StringPtrs(TagIDList)

	resp, err := service.UninstallApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

上传应用 UploadApp

您可以调用 UploadApp 接口上传应用 UploadApp。详细的参数说明可参见 UploadApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtr(v string) *string {
	return &v
}

func Int32Ptr(v int32) *int32 {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.UploadAppBody{
		// 应用上传的目标业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。
		// warning
		// 若指定 AppMode 为 Private,则该参数必填。
		ProductID: StringPtr(`1641133322660xxxxxx`),
		// 应用 ID。
		// 如不指定,则自动生成;如指定,需保证应用 ID 在账号下唯一。
		AppID: StringPtr(`app01`),
		// 应用名称,如不填写,则默认返回空值。
		AppName: StringPtr(`Chess`),
		// 应用类型:
		// <li> 0:其他 </li>
		// <li> 1:视频 </li>
		// <li> 2:游戏 </li>
		// <li> 3:效率 </li>
		// <li> 4:办公 </li>
		AppType: 2,
		// 应用的横竖屏:
		// <li> 0:竖屏 </li>
		// <li> 270:横屏 </li>
		Rotation: Int32Ptr(0),
		// 上传方式,目前仅支持设为 0,即 HTTP 下载地址。
		UploadType: Int32Ptr(0),
		// 应用下载 URL 地址。
		DownloadURL: `https://mybucketxxx.tos-cn-beijing.volces.com/chess.apk`,
		// 应用描述。
		AppDesc: StringPtr(`棋类游戏`),
		// 应用文件解析类型:
		// <li> 0,解析;前向兼容,默认解析并且转存到火山引擎对象存储 </li>
		// <li> 1,不解析,透传地址,不转存到火山引擎对象存储 </li>
		ParseFlag: Int32Ptr(0),
		// 应用可安装范围:
		// <li> Public:应用设为共享模式,允许在同一个账户下不同业务的实例中安装; </li>
		// <li> Private:默认设置,应用设为非共享模式,仅允许在某一业务的实例中安装。 </li>
		AppMode: StringPtr(`Public`),
	}

	resp, err := service.UploadApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

修改应用 UpdateApp

您可以调用 UpdateApp 接口修改应用 UpdateApp。详细的参数说明可参见 UpdateApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtr(v string) *string {
	return &v
}

func Int32Ptr(v int32) *int32 {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.UpdateAppBody{
		// 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。
		ProductID: `1641133322660xxxxxx`,
		// 应用 ID,可通过调用 ListApp 接口获取。
		AppID: `7291189096629xxxxxx`,
		// 应用名称。
		AppName: StringPtr(`球球大作战A`),
		// 应用横竖屏设置:
		// <li> 0:竖屏 </li>
		// <li> 270:横屏 </li>
		Rotation: Int32Ptr(270),
		// 应用描述。
		AppDesc: StringPtr(`小游戏应用`),
		// 修改应用生效范围。调用 [UploadApp](https://www.volcengine.com/docs/6394/1262199) 时设置的应用可安装范围可通过该参数进行修改。
		// 当前仅支持将 Private 应用修改为 Public 应用,即将非共享应用修改为账号下多业务可共享的应用。若无需修改,则该参数可置空。
		AppMode: StringPtr(`Public`),
	}

	resp, err := service.UpdateApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

自动下载安装应用 AutoInstallApp

您可以调用 AutoInstallApp 接口自动下载安装应用 AutoInstallApp。详细的参数说明可参见 AutoInstallApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtr(v string) *string {
	return &v
}

func Int32Ptr(v int32) *int32 {
	return &v
}

func BoolPtr(v bool) *bool {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.AutoInstallAppBody{
		// 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。
		ProductID: `1608456935646xxxxxx`,
		// 下载应用安装文件的地址。
		// 使用机身存储独立安装,即 InstallType 设为 0 时必填。
		DownloadURL: StringPtr(`http://www.example.com/cloudphone/app_name.apk`),
		// <li> InstallType 为 0 时,传入应用安装文件的 MD5 值,必须与下载的应用安装文件匹配。 </li>
		// <li> InstallType 为 1 时,传入镜像包的 MD5 值。 </li>
		MD5: StringPtr(`d0d106880f7eda0666dc5e90afxxxxxx`),
		// 应用包名。InstallType 为 1 时必填。
		PackageName: StringPtr(`com.abc.tmp.app`),
		// <li> InstallType 为 0 时:选填。应用在实例中的绝对路径。当指定了该参数时,优先使用实例中的安装包路径安装应用,否则使用下载链接进行安装。 </li>
		// <li> InstallType 为 1 时:必填。应用镜像存储的根目录,如 /ceph,/apkserver,/data/app-image </li>
		AbsolutePath: StringPtr(`/data/local/tmp/app_name.apk`),
		// 镜像包 ID。InstallType 为 1 时必填。示例:com.abc.tmp.app_ddfklidkfa,其中 “ddfklidkfa” 为镜像包 MD5 值。
		ImageID: StringPtr(`com.abc.tmp.app_ddfklidkfa`),
		// 应用安装方式:
		// <li> 0:(默认值)机身存储独立安装; </li>
		// <li> 1:应用镜像安装。 </li>
		InstallType: Int32Ptr(0),
		// 应用版本号。InstallType 为 1 时必填。
		VersionCode: Int32Ptr(1),
		// 用于标记该应用是否为预安装应用:
		// <li> true:是; </li>
		// <li> false:否。 </li>
		// 当标记某应用为预安装应用后,重置实例时可选择是否保留该应用及相关数据。具体参看 [ResetPod](https://www.volcengine.com/docs/6394/1221459) 接口的 PreInstallAppPersistedType 字段说明。
		IsPreinstall: BoolPtr(false),
	}

	// 指定实例 ID 列表进行应用安装。
	PodIDList := []string{"7299381659819xxxxxx"}

	body.PodIDList = PodIDList

	resp, err := service.AutoInstallApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

删除应用 DeleteApp

您可以调用 DeleteApp 接口删除应用 DeleteApp。详细的参数说明可参见 DeleteApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.DeleteAppBody{
		// 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。
		ProductID: `1608456935646xxxxxx`,
		// 应用 ID,可通过调用 ListApp 接口获取。
		AppID: `7291927828638xxxxxx`,
	}

	resp, err := service.DeleteApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

关闭应用 CloseApp

您可以调用 CloseApp 接口关闭应用 CloseApp。详细的参数说明可参见 CloseApp 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.CloseAppBody{
		// 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。
		ProductID: `1608456935646xxxxxx`,
		// 需要关闭的应用包名。
		PackageName: `com.mt.mtxx.mtxx`,
	}

	// 指定实例 ID 列表执行应用关闭任务。
	PodIDList := []string{"7299381659819xxxxxx"}

	body.PodIDList = PodIDList

	resp, err := service.CloseApp(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

查询应用崩溃 GetAppCrashLog

您可以调用 GetAppCrashLog 接口查询应用崩溃 GetAppCrashLog。详细的参数说明可参见 GetAppCrashLog 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	query := &ACEP.GetAppCrashLogQuery{
		// 可在「云手机控制台-业务管理-业务详情」中获取。
		ProductID: `1608456935646xxxxxx`,
		// 查询起始时间,秒级时间戳。
		StartTime: 1649399462,
		// 查询结束时间,秒级时间戳。
		EndTime: 1649399462,
	}

	resp, err := service.GetAppCrashLog(context.Background(), query)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

最近更新时间:2024.10.29 19:42:44
这个页面对您有帮助吗?
有用
有用
无用
无用