Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一的意图_C#_Android_Unity3d_Android Intent_Android Activity - Fatal编程技术网

C# 统一的意图

C# 统一的意图,c#,android,unity3d,android-intent,android-activity,C#,Android,Unity3d,Android Intent,Android Activity,我正在尝试使用Unity中的Intent启动一个android应用程序。使用我编写的代码,我可以打开应用程序,但我正试图让它启动到应用程序中的特定操作中 我在一个网站上找到了一个我想要的链接,但格式不对 即: intent://placeID=370731277#Intent;方案=移动机器人;package=com.roblox.client;S.browser\u fallback\u url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fde

我正在尝试使用Unity中的Intent启动一个android应用程序。使用我编写的代码,我可以打开应用程序,但我正试图让它启动到应用程序中的特定操作中

我在一个网站上找到了一个我想要的链接,但格式不对 即:
intent://placeID=370731277#Intent;方案=移动机器人;package=com.roblox.client;S.browser\u fallback\u url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.roblox.client;结束

当我点击网站上的这个链接时,它会将应用程序启动到我想要的状态(具体来说,它会启动id为370731277的游戏)

我查看了AndroidManifest.xml,发现了以下内容:

<activity android:name="com.roblox.client.ActivityProtocolLaunch" android:noHistory="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="robloxmobile" />
        </intent-filter>
    </activity>

这似乎是链接正在运行的活动

我的统一代码(C#)如下

string data = "robloxmobile://placeID=370731277";
string package = "com.roblox.client";


AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");

AndroidJavaObject launchIntent = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", package);
AndroidJavaObject uriData = uriClass.CallStatic<AndroidJavaObject>("parse", data);

launchIntent = launchIntent.Call<AndroidJavaObject>("setData", uriData);

currentActivity.Call("startActivity", launchIntent);
string data=“rob”loxmobile://placeID=370731277";
string package=“com.roblox.client”;
AndroidJavaClass unityPlayer=新的AndroidJavaClass(“com.unity3d.player.unityPlayer”);
AndroidJavaClass uriClass=新的AndroidJavaClass(“android.net.Uri”);
AndroidJavaObject currentActivity=unityPlayer.GetStatic(“currentActivity”);
AndroidJavaObject packageManager=currentActivity.Call(“getPackageManager”);
AndroidJavaObject launchIntent=packageManager.Call(“getLaunchIntentForPackage”,package);
AndroidJavaObject uriData=uriClass.CallStatic(“解析”,数据);
launchIntent=launchIntent.Call(“setData”,uriData);
调用(“startActivity”,launchIntent);
这成功地打开了应用程序,但无法打开游戏(id 370731277)


我觉得我在这里有我需要的一切,我只是不理解一些东西-任何帮助都会非常感激

最终解决了它-基本上是通过反复试验,我发现我必须对我想要运行的活动非常具体。我必须告诉它活动、行动和方案+数据。这是我的新工作代码

    string url = "robloxmobile://placeID=370731277";


    AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
    AndroidJavaObject packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");

    AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
    AndroidJavaObject uriData = uriClass.CallStatic<AndroidJavaObject>("parse", url);

    AndroidJavaObject i = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", "com.roblox.client");

    i.Call<AndroidJavaObject>("setClassName", "com.roblox.client", "com.roblox.client.ActivityProtocolLaunch");
    i.Call<AndroidJavaObject>("setAction", "android.intent.action.VIEW");
    i.Call<AndroidJavaObject>("setData", uriData);

    currentActivity.Call("startActivity", i);
string url=“rob”loxmobile://placeID=370731277";
AndroidJavaClass unityPlayer=新的AndroidJavaClass(“com.unity3d.player.unityPlayer”);
AndroidJavaObject currentActivity=unityPlayer.GetStatic(“currentActivity”);
AndroidJavaObject packageManager=currentActivity.Call(“getPackageManager”);
AndroidJavaClass uriClass=新的AndroidJavaClass(“android.net.Uri”);
AndroidJavaObject uriData=uriClass.CallStatic(“解析”,url);
AndroidJavaObject i=packageManager.Call(“getLaunchIntentForPackage”、“com.roblox.client”);
i、 调用(“setClassName”、“com.roblox.client”、“com.roblox.client.ActivityProtocolLaunch”);
i、 调用(“setAction”、“android.intent.action.VIEW”);
i、 调用(“设置数据”,uriData);
currentActivity.Call(“startActivity”,i);