我通过意图启动活动时遇到了这个问题。问题是,如果我进入XML,并将AugmentedReality设置为主活动(并且将要启动的活动作为第一个活动),则基本上没有问题。
<activity android:name=".AugmentedReality" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
该应用程序将在相机预览上绘制一个多维数据集,但随后我将不会“访问”其他活动“位置”,“ DescriptionText”和“ Description”。如果我将Location活动保留为XML文件中的主要活动,然后按将我带到AugmentedReality活动的按钮,则看不到绘制的多维数据集(我使用了
Log.v(TAG, "Cube drawn");
并被发送了垃圾邮件) 。我正在使用此代码从Location类声明并发送意图
public class Language extends Activity implements OnClickListener
: `if (dButton.isPressed()) {
description = dbh.getDescription("Danish");
list = dbh.getGPS("Maribo");
f = new float[list.size()];
for (int i = 0; i < list.size(); i++) {
f[i] = list.get(i);
}
intent = new Intent(this, Description.class);
try {
startActivity(intent);
} catch (ActivityNotFoundException ex) {
}
}`
当我按下dButton时,我将被发送到我的AugmentedReality活动,该活动仅显示摄像机预览。而不是立方体。这是AugmentedReality中的onCreate方法
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
camview = new CameraView(this);
graphics = new GraphicsView(this);
final Window win = getWindow();
requestWindowFeature(Window.FEATURE_NO_TITLE);
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(graphics);
addContentView(camview, new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
Log.v("AR", "Content sat");
}
GraphicsView中的onSurfaceChanged:
public void onDrawFrame(GL10 gl) {
gl.glDisable(GL10.GL_DITHER);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
// GLU.gluLookAt(gl, coords[0], coords[1], 0, 0, 0, 0,
// orientation[0],
// orientation[1], orientation[2]);
GLU.gluLookAt(gl, 0, 0, -5, 0, 0, 0, 0, 2, 0);
gl.glRotatef(45, 45, 0, 15);
cube.draw(gl);
当然还有我的Cube类中的draw方法:
public void draw(GL10 gl) {
gl.glFrontFace(GL10.GL_CW);
gl.glEnable(GL10.GL_CULL_FACE);
gl.glCullFace(GL10.GL_BACK);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, verticesBuffer);
gl.glDrawElements(GL10.GL_TRIANGLES, indices.length,
GL10.GL_UNSIGNED_SHORT, indicesBuffer);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDisable(GL10.GL_CULL_FACE);
}
我希望有人能告诉我为什么只有在我的XML文件中将AugmentedReality设置为main时才能看到多维数据集。相机在XML文件中拥有所有必需的权限,而Location类具有使用GPS的权限
最佳答案
您是否已在清单文件中映射了描述类?即使您已映射,也需要授予权限
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-feature android:name="android.hardware.camera"/>
<activity android:name=".Description"/>