QUICK-COCOS2DX 2.2.3接入短信SDK教程
说实话 ,其实接SDK相对来说还是比较简单的,但是如果遇到问题,还是需要我们去考虑和分析。 例如说我们在用COCOS2DX-LUA开发的时候,我们接Android的SDK,必须要调用JAVA的方法, 那么我们可以直接用LUA 调用Java,也可以用LUA先调用C++,然后再用C++调用JAVA,那么这两种方法都是 可以的,不过我们既然直接能用LUA调用JAVA,用JAVA调用LUA,我们何必不这样做呢? 不过在这里还是非常感谢这个博主的 源地址:http://dualface.github.io/blog/2013/01/01/call-java-from-lua/#E5B08620lua20function20E4BD9CE4B8BAE58F82E695B0E4BCA0E98092E7BB9920java20E696B9E6B395
那么我们在接SDK的时候,别人都会给你几个文见,有加入权限,配置,.JAR包等等,那么还会有一个说明文档,你只需要 按着他的说明文档一个个做就行,基本上不会有太多的问题。
1、首先打开工程的AndroidMainfest.xml文件,在标签内写入 权限和配置信息,例如:
<!-- 接入短信SDK 权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> ........
<!-- 需要的权限配置 --> <service android:name="com.lyhtgh.pay.services.SmsStatusService"></service> <service android:name="com.lyhtgh.pay.services.SmsDataService"></service> .......... 这里省略了很多,你把你自己需要的直接考进来就行,别搞错就行。 2、把解压下载回来的包,将里面的.jar文件夹考到android工程下的libs文件夹中。这个文件别人会给你的,放心吧。
3、接下来,打开AppActivity.java文件,在onCreate中加入(也可以是其他的.java文件,如果是cocos的话,应该是继承至 Cocos2dxActivity): 那么我自己新建了一个PaySDK.java的文件,然后里面有一个init的方法,我们在AppActivity.java中调用它, public class AppActivity extends Cocos2dxActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PaySDK.init(this); } }
4、我的PaySDK.java文件代码是:
public class PaySDK { private static Cocos2dxActivity mContent = null; public static void init(Cocos2dxActivity activity){ System.out.println("调用sdk这个初始化方法"); mContent = activity; }
public static void payMoney(final String str,final int money,final int luaFunctionId){ System.out.println("调用成功 payMoney : "+str+" money : "+money);
//SDK接口方法 Pay.getInstance(mContent).start(new IPayCallback() {
@Override public void onFailure() { System.out.println("调用成功 payMoney : onFailure"); // TODO Auto-generated method stub //这里是Java调用Lua的方法,并给Lua返回一个字符串 Cocos2dxLuaJavaBridge.callLuaFunctionWithString(luaFunctionId,"failed"); Toast.makeText(mContent,"onFailure",Toast.LENGTH_LONG).show(); }
@Override public void onSuccess() { // TODO Auto-generated method stub System.out.println("调用成功 payMoney : onSuccess"); //这里是Java调用Lua的方法,并给Lua返回一个字符串 Cocos2dxLuaJavaBridge.callLuaFunctionWithString(luaFunctionId,"success"); Toast.makeText(mContent,"onSuccess",Toast.LENGTH_LONG).show(); }
},mContent, "1","lichao",str,money,"1","1"); }
}
5、我这边PayInsertSDK.lua文件的代码为 local PayInsertSDK = class("PayInsertSDK") 这样基本上就调用成功了,不过我们要注意两个点,一个是返回值和传递的值,还有一个就是看报错信息具体是啥,否则不好调试
签名使用“(依次排列的参数类型)返回值类型”的格式,几个例子如下:
这里列出不同类型对应的 Java 签名字符串:
错误代码定义如下:
~ 只要相互之间调用成功了,就一切OK了,暂时到这里 ,急着下班,有问题欢迎留言。。。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |