2、cocos-js与java原生交互获得手机震动
CocosCreator系列教程——如何通过js代码与Java原生交互获取手机震动
首先是客户端代码
// 此方法可以绑定在一个按钮上或者某个方法里面调用 onDoVibrate() { jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "DoVibrate", "()V"); },
js调用Java代码方法可以参考:Java原生反射机制可以参考官方文档链接.
如果是新手的话,官方文档说的org.cocos2dx.javascript路径要在项目构建之后,在项目根目录的build文件夹下面
下一步打开org.cocos2dx.javascript文件路径下的AppActivity.java文件编辑代码
1.导入文件所需依赖包
import android.os.Vibrator; import android.app.Service;
2.声明静态变量myVibrator
public static Vibrator myVibrator;
3.在onCreate()方法中注册服务
myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);
4.写手机震动方法(注意此方法要和客户端调用方法名一致)
//1000是震动毫秒数,根据自己实际需求来写值 public static void DoVibrate() { myVibrator.vibrate(1000);}
5.打开AndroidManifest.xml文件注册服务
//1000是震动毫秒数,根据自己实际需求来写值 <uses-permission android:name="android.permission.VIBRATE"/>
至此全部完成,只需要客户端调用onDoVibrate()方法,即可实现震动效果
下面附上AppActivity.java参考代码
package org.cocos2dx.javascript; import org.cocos2dx.lib.Cocos2dxActivity; import org.cocos2dx.lib.Cocos2dxGLSurfaceView; import android.os.Bundle; import android.content.Intent; import android.content.res.Configuration; import android.content.BroadcastReceiver; import android.content.Context; import android.os.Vibrator; import android.app.Service; public class AppActivity extends Cocos2dxActivity { public static Vibrator myVibrator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (!isTaskRoot()) { // Android launched another instance of the root activity into an existing task // so just quietly finish and go away, dropping the user back into the activity // at the top of the stack (ie: the last state of this task) // Don't need to finish it again since it's finished in super.onCreate . return; } // DO OTHER INITIALIZATION BELOW SDKWrapper.getInstance().init(this); myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); } public static void DoVibrate() { myVibrator.vibrate(1000); } }

浙公网安备 33010602011771号