今天有需求要复制微信号后打开微信,我写了个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 } } } } } }
只要传入包名,就可以直接打开该包名的应用了。