Android 接入指南

注:本文为美拍Android终端开发工具的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉IDE的基本使用方法(本文以Android Studio为例),以及具有一定的编程知识基础等。


1、向美拍注册 ClientId


请联系美拍相关人员,请求申请 ClientId,只有审核通过的应该才能正式发布使用。


2、获得美拍 SDK 文件


libmpsdk_v1.5.jar, 向相关人员获取 Meipai 的 SDK 文件


3、搭建开发环境

以 Intellij IDEA 环境为例:


[1] 在 IDEA 中建立你的工程;


[2] 在工程中新建一个 libs 目录,将 SDK 文件中 libs 目录下的 libmpsdk_v1.5.jar 复制到该目录中(如下图所示)



[3] 在 Project Structure 中将该 jar 包作为依赖包;


4、在代码中使用开发工具包


[1] 初始化 在程序入口 Activity 的 onCreate 回调函数处,或其他合适的地方创建 IMeipaiApi,传入你申请的 ClientId;


apiIml = MeipaiAPIFactory.createMeipaiApi(this, appClientId, true);


[2] 发送分享请求到美拍你的应用要发送分享请求到美拍客户端,可以通过 IMeipaiApisendRequest 方法来实现;

boolean sendRequest(Activity activity,BaseRequest baseRequest)

                               

MeipaiMessage message = new MeipaiMessage();
MeipaiVideoObject videoObject = new MeipaiVideoObject();
videoObject.videoPath = path;

message.setMediaObject(videoObject);

MeipaiSendMessageRequest request = new MeipaiSendMessageRequest();
request.setMessage(message);

request.setTransaction(String.valueOf(System.currentTimeMillis()));
request.setScene(MeipaiSendMessageRequest.MP_SCENE_VIDEO);

IMeipaiAPI meipaiApi = MeipaiAPIFactory.createMeipaiApi(this, appKey);
meipaiApi.sendRequest(this, request);


可调用 isMeipaiAppInstalled 方法检测是否安装美拍客户端,如果未安装美拍或者非正式版美拍,isMeipaiAppInstalled 返回 false 


[3] 接收美拍的分享返回值


a.在 AndroidManifest.xml 文件中,你要接收分享结果的 activity 节点下添加


<intent-filte>
    <action android:name="com.meitu.mp.sdk.action.ACTION_SDK_RESP_ACTIVITY" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

                               

<activity android:name="ShareActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.meitu.mp.sdk.action.ACTION_SDK_RESP_ACTIVITY" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>



b. 实现 IMeipaiAPIEventHandler 接口,美拍发送的请求将回调到 onResponse 方法;


private IMeipaiAPIEventHandler meipaiAPIEventHandler = new IMeipaiAPIEventHandler() {
    @Override
    public void onResponse(BaseResponse response) {
        String string =null;
        switch (response.errCode) {
            case ErrorCode.ERR_OK:
                Log.d("cpy", "onResponse ERR_OK");
                string = "onResponse ERR_OK " + response.errStr;
                break;
            case ErrorCode.ERR_USER_CANCEL:
                Log.d("cpy", "onResponse ERR_USER_CANCEL");
                string = "onResponse ERR_USER_CANCEL " + response.errStr;
                break;
            case ErrorCode.ERR_AUTH_DENIED:
                Log.d("cpy", "onResponse ERR_AUTH_DENIED");
                string = "onResponse ERR_AUTH_DENIED " + response.errStr;
                break;
            case ErrorCode.ERR_SENT_FAILED:
                Log.d("cpy", "onResponse ERR_SENT_FAILED");
                string = "onResponse ERR_SENT_FAILED " + response.errStr;
                break;
            case ErrorCode.ERR_UNSUPPORT:
                Log.d("cpy", "onResponse ERR_UNSUPPORT");
                string = "onResponse ERR_UNSUPPORT " + response.errStr;
                break;
        }
        responseTv.setText(string);
    }
};

                       

c. 在此 Activity 中将接收到的 intent 及实现了 IMeipaiAPIEventHandler 接口的对象传递给 IMeipaiApi 接口的 handleIntent 方法;示例如下:

apiIml.handleIntent(getIntent(), meipaiAPIEventHandler);

                       

完成以上配置及代码,应用请求美拍的响应结果将通过 onResponse 回调。

注意:如果需要混淆代码,为了保证 sdk 的正常使用,需要在 proguard-project 加上下面配置:

-keep class com.meitu.meipaimv.sdk.modelmsg.** {*;}