在我的Unity Android项目中,下载《我的世界》的模组后,会显示面板,我在其中选择女巫应用程序,我想打开它,在这些应用程序中是《我的世界》,所以我在其中打开下载模式,但对于具有.png扩展名的皮肤,有建议的应用程序中没有我的世界。 用应用程序打开面板的方法
public static void OpenFile(string url, string dataType)
{
AndroidJavaObject clazz = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = clazz.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent");
intent.Call<AndroidJavaObject>("addFlags", intent.GetStatic<int>("FLAG_GRANT_READ_URI_PERMISSION"));
intent.Call<AndroidJavaObject>("setAction", intent.GetStatic<string>("ACTION_VIEW"));
var apiLevel = new AndroidJavaClass("android.os.Build$VERSION").GetStatic<int>("SDK_INT");
AndroidJavaObject uri;
if (apiLevel > 23)
{
AndroidJavaClass fileProvider = new AndroidJavaClass("android.support.v4.content.FileProvider");
AndroidJavaObject file = new AndroidJavaObject("java.io.File", url);
AndroidJavaObject unityContext = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
string packageName = unityContext.Call<string>("getPackageName");
string authority = packageName + ".fileprovider";
uri = fileProvider.CallStatic<AndroidJavaObject>("getUriForFile", unityContext, authority, file);
}
else
{
var uriClazz = new AndroidJavaClass("android.net.Uri");
var file = new AndroidJavaObject("java.io.File", url);
uri = uriClazz.CallStatic<AndroidJavaObject>("fromFile", file);
}
intent.Call<AndroidJavaObject>("setType", dataType);
intent.Call<AndroidJavaObject>("setData", uri);
currentActivity.Call("startActivity", intent);
}
这就是我调用方法的方式
AndroidOpenUrl.OpenFile(path, "image/png");
应用程序面板显示模式,但不显示皮肤
了解如何操作 - https://learn.microsoft.com/en-us/minecraft/creator/documents/packagingaskinpack,它应该在 .mcpack 中