如何从常规 2D Activity 调用 Daydream Activity
How to call Daydream Activity from a regular 2D Activity
我正在尝试在 Daydream 模式下调用 VrIntent。我使用了 DaydreamApi。这是我的 class:
public class Menu extends Activity {
private DaydreamApi mDaydreamApi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu);
mDaydreamApi = DaydreamApi.create(getApplicationContext());
startGame(false);
}
void startGame(boolean multiplayer)
{
mMultiplayer = multiplayer;
Intent intent = DaydreamApi.createVrIntent(new ComponentName(this, MainActivity.class));
if (intent == null) Log.e(TAG,"Error on createVrIntent intent ");
if (mDaydreamApi == null) {
Log.w(TAG, "Error on mDayDreamApi");
startActivity(intent);
}
else {
mDaydreamApi.launchInVr(intent);
}
}
}
在我的 Android.manifest.xml
中,我在两个活动中都添加了 DAYDREAM 的意图过滤器。 Menu
是从启动器启动的主要 activity。 MainActivity
是白日梦。
<activity
android:name=".Menu"
android:label="@string/app_name"
android:allowBackup="false"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="com.google.intent.category.DAYDREAM" />
</intent-filter>
</activity>
<activity
android:configChanges="orientation|keyboardHidden|screenSize"
android:enableVrMode="@string/gvr_vr_mode_component"
android:label="@string/app_name"
android:name=".MainActivity"
android:resizeableActivity="false"
android:screenOrientation="landscape">
<intent-filter>
<category android:name="com.google.intent.category.DAYDREAM" />
</intent-filter>
</activity>
但是当我运行应用程序时,activity显示这个错误:
一开始,我将 MainActivity
作为主要 activity,并且效果很好。只有当我尝试从 2D activity 启动它时才会出现错误。
我错过了什么?
您缺少 action
作为 intent-filter
for MainActivity
。这应该可以解决问题:
<action android:name="android.intent.action.VIEW"/>
来源:https://github.com/googlevr/gvr-android-sdk/issues/295#issuecomment-261447175
我正在尝试在 Daydream 模式下调用 VrIntent。我使用了 DaydreamApi。这是我的 class:
public class Menu extends Activity {
private DaydreamApi mDaydreamApi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu);
mDaydreamApi = DaydreamApi.create(getApplicationContext());
startGame(false);
}
void startGame(boolean multiplayer)
{
mMultiplayer = multiplayer;
Intent intent = DaydreamApi.createVrIntent(new ComponentName(this, MainActivity.class));
if (intent == null) Log.e(TAG,"Error on createVrIntent intent ");
if (mDaydreamApi == null) {
Log.w(TAG, "Error on mDayDreamApi");
startActivity(intent);
}
else {
mDaydreamApi.launchInVr(intent);
}
}
}
在我的 Android.manifest.xml
中,我在两个活动中都添加了 DAYDREAM 的意图过滤器。 Menu
是从启动器启动的主要 activity。 MainActivity
是白日梦。
<activity
android:name=".Menu"
android:label="@string/app_name"
android:allowBackup="false"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="com.google.intent.category.DAYDREAM" />
</intent-filter>
</activity>
<activity
android:configChanges="orientation|keyboardHidden|screenSize"
android:enableVrMode="@string/gvr_vr_mode_component"
android:label="@string/app_name"
android:name=".MainActivity"
android:resizeableActivity="false"
android:screenOrientation="landscape">
<intent-filter>
<category android:name="com.google.intent.category.DAYDREAM" />
</intent-filter>
</activity>
但是当我运行应用程序时,activity显示这个错误:
一开始,我将 MainActivity
作为主要 activity,并且效果很好。只有当我尝试从 2D activity 启动它时才会出现错误。
我错过了什么?
您缺少 action
作为 intent-filter
for MainActivity
。这应该可以解决问题:
<action android:name="android.intent.action.VIEW"/>
来源:https://github.com/googlevr/gvr-android-sdk/issues/295#issuecomment-261447175