unity打开其他安卓应用

今天有需求要复制微信号后打开微信,我写了个jar包导进工程中,然后调用我写的接口方法,居然屁反应都没有,后来发现,我写的方法都是使用Android自带的类库实现的,那么应该就可以直接在Unity中获取这些类和方法直接实现了,我百度了一下,就发现了轮子可。

void openPackage(string pkgName)
{
    using (AndroidJavaClass jcPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))//Unityd的主Active就是UnityPlayer
    {
        using (AndroidJavaObject joActivity = jcPlayer.GetStatic<AndroidJavaObject>("currentActivity"))//获取静态属性
        {
            using (AndroidJavaObject joPackageManager = joActivity.Call<AndroidJavaObject>("getPackageManager"))//获取PackageManager这个类
            {
                using (AndroidJavaObject joIntent = joPackageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", pkgName))//调用这个方法
                {
                    if (null != joIntent)
                    {
                        joActivity.Call("startActivity", joIntent);//主Active开启另外的Active
                    }
                }
            }
        }
    }
}


只要传入包名,就可以直接打开该包名的应用了。


首页 我的博客
粤ICP备17103704号