CocosCreator系列——與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);
}
}