Start a new topic

Camera Activity

Hello


I want to open camera on main activity but I am not able to do it then I tried to open camera from my second page of main activity then I am able to do it so can you please let me know is it possible to open camera from main activity using your wikitude Javascript api? Thanks in advance



 public void onListItemClick(int position) {
// super.onListItemClick( l, v, position, id );

final Intent intent = new Intent( this, MainSamplesListActivity.class );

final List<SampleMeta> activitiesToLaunch = getActivitiesToLaunch(position);
final String activityTitle = activitiesToLaunch.get(0).categoryName.replace("$", " ");
String[] activityTitles = new String[activitiesToLaunch.size()];
String[] activityUrls = new String[activitiesToLaunch.size()];
String[] activityClasses = new String[activitiesToLaunch.size()];

boolean[] activitiesIr = new boolean[activitiesToLaunch.size()];
boolean[] activitiesGeo = new boolean[activitiesToLaunch.size()];
boolean[] activitiesInstant = new boolean[activitiesToLaunch.size()];

// check if AR.VideoDrawables are supported on the current device. if not -> show hint-Toast message
if (activitiesToLaunch.get(0).categoryName.contains("Video") && ! MainActivity.isVideoDrawablesSupported()) {
Toast.makeText(this, R.string.videosrawables_fallback, Toast.LENGTH_LONG).show();
}

// find out which Activity to launch when sample row was pressed, some handle AR.platform.sendJSONObject, others inject poi data from native via javascript
for (int i= 0; i< activitiesToLaunch.size(); i++) {
final SampleMeta meta = activitiesToLaunch.get(i);

activityTitles[i] = (meta.sampleName.replace("$", " "));
activityUrls[i] = meta.path;
activitiesIr[i] = meta.hasIr;
activitiesGeo[i] = meta.hasGeo;
activitiesInstant[i] = meta.hasInstant;

if (meta.categoryId.equals("02") && meta.sampleId==3) {
activityClasses[i] = ("com.wikitude.samples.SampleCamActivity");
} else if (meta.categoryId.equals("04")) {
activityClasses[i] = ("com.wikitude.samples.SampleCamActivity");
} else if (meta.categoryId.equals("05")){
activityClasses[i] = ("com.wikitude.samples.SampleCamActivity");
} else if (meta.categoryId.equals("09") && meta.sampleId==1) {
activityClasses[i] = ("com.wikitude.samples.SampleCamContentFromNativeActivity");
} else if (meta.categoryId.equals("12") && meta.sampleId==1) {
activityClasses[i] = ("com.wikitude.samples.SampleFrontCamActivity");
} else if (meta.categoryId.equals("12") && meta.sampleId==3) {
activityClasses[i] = ("com.wikitude.samples.SampleCam2Activity");
} else if (meta.categoryId.equals("13") && meta.sampleId==1) {
activityClasses[i] = ("com.wikitude.samples.SamplePluginActivity");
} else if (meta.categoryId.equals("13") && meta.sampleId==2) {
activityClasses[i] = ("com.wikitude.samples.FaceDetectionPluginActivity");
} else if (meta.categoryId.equals("13") && meta.sampleId==3) {
activityClasses[i] = ("com.wikitude.samples.SimpleInputPluginActivity");
} else if (meta.categoryId.equals("13") && meta.sampleId==4) {
activityClasses[i] = ("com.wikitude.samples.CustomCameraActivity");
} else if (meta.categoryId.equals("13") && meta.sampleId==5) {
activityClasses[i] = ("com.wikitude.samples.MarkerTrackingPluginActivity");
} else {
activityClasses[i] = ("com.wikitude.samples.AutoHdSampleCamActivity");
}
}

intent.putExtra(MainSamplesListActivity.EXTRAS_KEY_ACTIVITIES_ARCHITECT_WORLD_URLS_ARRAY, activityUrls);
intent.putExtra(MainSamplesListActivity.EXTRAS_KEY_ACTIVITIES_CLASSNAMES_ARRAY, activityClasses);
intent.putExtra(MainSamplesListActivity.EXTRAS_KEY_ACTIVITIES_TILES_ARRAY, activityTitles);
intent.putExtra(MainSamplesListActivity.EXTRAS_KEY_ACTIVITIES_IR_ARRAY, activitiesIr);
intent.putExtra(MainSamplesListActivity.EXTRAS_KEY_ACTIVITIES_GEO_ARRAY, activitiesGeo);
intent.putExtra(MainSamplesListActivity.EXTRAS_KEY_ACTIVITIES_INSTANT_ARRAY, activitiesInstant);
intent.putExtra(MainSamplesListActivity.EXTRAS_KEY_ACTIVITY_TITLE_STRING, activityTitle);

/* launch activity */
this.startActivity( intent );

}

protected final String[] getListLabels() {
boolean includeIR = (ArchitectView.getSupportedFeaturesForDevice(getApplicationContext()) & ArchitectStartupConfiguration.Features.ImageTracking) != 0;
boolean includeGeo = (ArchitectView.getSupportedFeaturesForDevice(getApplicationContext()) & ArchitectStartupConfiguration.Features.Geo) != 0;
boolean includeInstant = (ArchitectView.getSupportedFeaturesForDevice(getApplicationContext()) & ArchitectStartupConfiguration.Features.InstantTracking) != 0;
boolean includeObject = (ArchitectView.getSupportedFeaturesForDevice(getApplicationContext()) & ArchitectStartupConfiguration.Features.ObjectTracking) != 0;

MissingDeviceFeatures missingDeviceFeatures = ArchitectView.isDeviceSupported(this,
ArchitectStartupConfiguration.Features.ImageTracking | ArchitectStartupConfiguration.Features.Geo | ArchitectStartupConfiguration.Features.InstantTracking | ArchitectStartupConfiguration.Features.ObjectTracking);

if (missingDeviceFeatures.areFeaturesMissing()) {
Toast toast = Toast.makeText(this, missingDeviceFeatures.getMissingFeatureMessage() +
"Because of this some samples may not be visible.", Toast.LENGTH_LONG);
toast.show();
}

samples = getActivitiesToLaunch(includeIR, includeGeo, includeInstant, includeObject);
final String[] labels = new String[samples.keySet().size()];
for (int i = 0; i<labels.length; i++) {
labels[i] = samples.get(i).get(0).categoryName.replace("$", " ");
}
return labels;
}

protected int getContentViewId() {
return R.layout.list_startscreen;
}

public void buttonClicked(final View view)
{
try {
this.startActivity( new Intent( this, Class.forName( "com.wikitude.samples.utils.urllauncher.ARchitectUrlLauncherActivity" ) ) );
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

Hello,


you should download the most recent Android JS package since it includes new and really simple samples.

If I understood you correctly you want to immediately start the App into AR?


To do this you only have to create a ArchitectView, and call its lifecycle methods. This can be seen in SimpleArActivity.java that is included in the 7.1 package.


You have to make sure that you have camera permissions before you call ArchitectView.onCreate if you app targets android 23+.


Best Regards,

Alex

Some budy can you give me a best solutions.

Login or Signup to post a comment