【前言】
之前的文章更多的是进行一些原理说明,很少涉及代码,本文举一些Unity与Android交互的常见的一些例示例。
获取UnityPlayerActivity
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
获取包名
currentActivity.Call<string>("getPackageName")
获取Android Id
(Android Id是Android操作系统提供的一个用于标识设备的唯一标识符,是一个字符串类型的值,可以用于区分不同的设备。其是操作系统在设备首次启动时生成的,一般是通过获取设备的硬件信息,如IMEI,MAC地址等,进行hash计算得到的。)
AndroidJavaObject contentResolver = currentActivity.Call<AndroidJavaObject>("getContentResolver");
AndroidJavaClass secure = new AndroidJavaClass("android.provider.Settings$Secure");
string android_id = secure.CallStatic<string>("getString", contentResolver,"android_id");
获取应用的内部存储路径
currentActivity.Call<AndroidJavaObject>("getFilesDir").Call<string>("getAbsolutePath")
如何开启一个线程来调用Java代码
public void Init()
{
jniAttached = false
Thread thread = new Thread(Run)
Thread.Start()
}
public void Run()
{
if(!jniAttached)
{
if(AndroidJNI.AttachCurrentThread() == 0)
{
jniAttached = true;
}
}
}
public void Dispose()
{
if(jniAttached)
{
AndroidJNI.DetachCurrentThread();
}
}
获取手机公共图片路径
using(AndroidJavaClass environment = new AndroidJavaClass("android.os.Environment"))
{
string fileFolder = environment.CallStatic<AndroidJavaObject>("getExternalStoragePublicDirectory", "Pictures").Call<string>("getAbsolutePath");
}
未完待续。。。文章来源:https://www.toymoban.com/news/detail-536868.html
【参考】
在unity中如何高效的使用内置android方法_w/unity: androidjnihelper: converting byte array i_东方快弟的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-536868.html
到了这里,关于Unity与Android交互(5)——常见交互示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!