如何从常规2D活动中调用Daydream活动

时间:2017-11-19 04:07:24

标签: android google-cardboard daydream

我正试图在Daydream模式下调用VrIntent。我用过DaydreamApi。这是我的班级:

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是从启动器启动的主要活动。 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>

但是当我运行应用程序时,活动显示此错误:

Incompatible app

一开始,我将MainActivity作为主要活动,并且工作正常。只有当我尝试从错误显示的2D活动中启动它时。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

action的{​​{1}}错过intent-filter。这应该可以解决问题:

MainActivity

来源:https://github.com/googlevr/gvr-android-sdk/issues/295#issuecomment-261447175