gpt4 book ai didi

java - 如何使用非主要 Activity 在统一游戏中捕获自定义网址?

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:21 24 4
gpt4 key购买 nike

当有人点击“com.foo.bar://testtest”形式的网页中的链接时,我希望它打开我的统一游戏并让我获取测试数据。

我是一名经验丰富的程序员,但谈到 android 时,我有点像谷歌搜索,而不是真正理解任何东西。请记住这一点。 :)

我可以使用 intent-filters 对 android 上的链接使用react。然而,我发现的所有资源都假设您可以扩展您的主要 Activity 以捕捉新的 Intent 。可以通过团结来做到这一点,但出于各种原因我宁愿不这样做。我尝试创建一个新 Activity ,将其导出到一个 jar,并将其添加到应用程序标签中的 list 中:

<activity android:name="com.foo.ProtocolCatcher"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<intent-filter>
<data android:scheme="com.foo.bar" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>

单击链接成功启动了我的游戏,但出现黑屏。

编辑:我也试过这种格式没有改变:

<activity android:name="com.foo.ProtocolCatcher"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="com.foo.bar" />
</intent-filter>
</activity>

有什么神奇的咒语可以启动整个游戏以及我的自定义 Activity ,并让我的自定义 Activity 读取传入的 URL,而无需触及主 Activity ?

最佳答案

我想您遗漏了一部分启动序列;所需的步骤如下:

  1. 使用适当的方案定义ProtocolCatcher Activity(确定)
  2. 定义 MainActivty,它代表您的 Unity3D 游戏主要 Activity(确定)
  3. ProtocolCatcher Activity 启动时启动 MainActivity(缺失)

实现第三步非常简单;只需编辑您的 ProtocolCatcher ActivityonCreate() 方法:

//ProtocolCatcher
//...

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...

Intent gameIntent = new Intent(this, MainActivity.class);
/*
//Pass the extra data to the game if needed
Intent sourceIntent = getIntent();
Uri data = sourceIntent.getData();
gameIntent.putExtra("uriData", data != null ? data.toString(): null);
*/
startActivity(gameIntent); //start the real game
finish(); //close the ProtocolCatcher activity

}

考虑到您是手动“注入(inject)”ProtocolCatcher Activity 的事实,如果您在从 中引用 MainActivity 时遇到问题ProtocolCatcher onCreate() 你可以 lookup the relative Class using reflection .

关于java - 如何使用非主要 Activity 在统一游戏中捕获自定义网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29151638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com