如何从常规 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