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