これを使用して phonegap プラグインを作成しようとしています -
https://github.com/dixon1e/ARviewer-phoneGap
プラグインアクションメソッドでこの呼び出しを使用しています-
if(action.equalsIgnoreCase("open")) {
// campreview.onCreate(null);
Log.d(PLUGIN_NAME, "Inside Open");
cordova.getActivity().runOnUiThread(new Runnable(){
public void run() {
Log.d(PLUGIN_NAME, "Start Camera");
Context context = cordova.getActivity().getApplicationContext();
Intent intent = new Intent(context,CameraActivity.class);
cordova.getActivity().startActivity(intent);
callbackContext.success();
}
});
私はこのような CameraActivity.java ファイルを作成しました -
private final static String tag = "CameraActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(tag, "Inside onCreate CameraActivity");
super.onCreate(savedInstanceState);
// arviewer.arurl();
setContentView(R.layout.main);
RelativeLayout preview = (RelativeLayout)findViewById(R.id.phonegap_container);
// Create an instance of Camera
//mCamera = getCameraInstance();
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Toast.makeText(this, "No Camera on this Device", Toast.LENGTH_LONG).show();
} else {
cameraID = findBackFacingCamera();
if(cameraID == 0){
mCamera = Camera.open(cameraID);
} else {
Toast.makeText(this, "No Back Camera Found", Toast.LENGTH_LONG).show();
}
}
// Create our Preview view and set it as the content of our activity.
mPreview = new CameraSurfacePreview(this, mCamera);
preview.setBackgroundColor(Color.TRANSPARENT);
preview.addView(mPreview);
preview.setFocusable(false);
/* FrameLayout preview = (FrameLayout) findViewById(R.id.phonegap_container);
preview.setBackgroundColor(Color.TRANSPARENT);
preview.addView(mPreview);
preview.setFocusable(false); */
}
private int findBackFacingCamera() {
int cameraId = -1;
// Search for the Back facing camera
int numberOfCameras = Camera.getNumberOfCameras();
for (int i = 0; i < numberOfCameras; i++) {
CameraInfo info = new CameraInfo();
Camera.getCameraInfo(i, info);
if (info.facing == CameraInfo.CAMERA_FACING_BACK) {
Log.d(tag, "Camera found, cameraID =" +i);
cameraId = i;
break;
}
}
return cameraId;
}
}
コード カメラを実行した後、プレビュー モードで開いていますが、POI を表示する webview データが表示されません。戻るキーを押すと、Webview データが表示されます。これを解決するには、次のコードを onCreate 関数に追加する必要があると思いますが、このコードをどのように追加しますか? 追加しようとすると、appView が宣言されていないことがわかります。
View html = (View)appView.getParent();
html.setBackgroundColor(Color.TRANSPARENT);
view.addView(html, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
appView.setBackgroundColor(Color.TRANSPARENT);
// Avoid the focus on click events
appView.setFocusable(false);