Unity与Android交互(5)——常见交互示例

这篇具有很好参考价值的文章主要介绍了Unity与Android交互(5)——常见交互示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【前言】

之前的文章更多的是进行一些原理说明,很少涉及代码,本文举一些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");
		}

未完待续。。。

【参考】

在unity中如何高效的使用内置android方法_w/unity: androidjnihelper: converting byte array i_东方快弟的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-536868.html

到了这里,关于Unity与Android交互(5)——常见交互示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flutter与Android开发:构建跨平台移动应用的新选择

    本文内容提纲如下: 介绍Flutter技术:Flutter是一种由Google推出的开源UI工具包,用于构建高性能、跨平台的移动应用。文章将介绍Flutter的基本概念、特点和优势,包括其快速的开发速度、一致的用户界面和丰富的UI组件库等。 Flutter与Android开发的对比:文章将对比Flutter与传统

    2023年04月21日
    浏览(35)
  • Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程

    FairyGUI的项目文件结构 .objs 内部数据目录。注意:不要加入版本管理,因为这里的内容是不需要共享的。 assets 包内容放置目录,资源内容都在这里面,里面还可以分不同的包,便于区分管理(看下图) settings 配置文件放置目录。 ****.fairy 项目识别文件,也就是项目名称 目录

    2024年04月14日
    浏览(20)
  • Android:手把手带你入门跨平台UI开发框架Flutter

    定义:一款Google出品开源的移动客户端UI开发框架(SDK) 作用:用一套代码同时在Android、iOS上快速构建高质量、高性能的原生用户界面 开发语言:Dart语言(高开发效率、高性能等) 2. 特点 Flutter的主要特点包括:使用自身的高性能渲染引擎进行渲染 Dart编程语言语言 具体介

    2024年04月13日
    浏览(25)
  • 【HarmonyOS开发】ArkUI-X 跨平台框架(使用ArkTs开发Android&IOS)

    ArkUI-X 跨平台框架进一步将 ArkUI 开发框架扩展到了多个OS平台,目前支持OpenHarmony、HarmonyOS、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用。 React Native 是一个基于 JavaScript 和 React 的开源框架,由 Facebook 开发和

    2024年01月20日
    浏览(26)
  • 通过坚果云、KeePassXC、keepass2android实现跨平台的密码管理方案

    KeePassXC、keepass2android都是属于一个免费的密码管理软件,但是密码的数据库文件是基于本地设备的、难做到Windows和Android使用同一个密码数据库文件的要求,但他们都支持使用对方的数据库文件,坚果云支持第三方应用授权WebDAV,所以我们借用坚果云实现一个把数据库文件放

    2024年02月06日
    浏览(20)
  • ComPDFKit PDF SDK(支持Web、Android、IOS、Windows、Server、API、跨平台)

    SDK是软件开发工具包的缩写,指的是一组用于开发软件应用的工具、库和文档。SDK包含一系列的函数、类和方法,开发人员可以使用这些工具和资源来开发、测试和部署应用程序。SDK可以提供各种功能和技术支持,如图形界面、网络通信、数据库操作等,帮助开发人员更高效

    2024年02月14日
    浏览(23)
  • 滚动条详解:跨平台iOS、Android、小程序滚动条隐藏及自定义样式综合指南

    滚动条是用户界面中的图形化组件,用于指示和控制内容区域的可滚动范围。当元素内容超出其视窗边界时,滚动条提供可视化线索,并允许用户通过鼠标滚轮、触屏滑动或直接拖动滑块来浏览未显示部分,实现内容的上下或左右滚动。它在保持界面整洁、避免内容溢出的同

    2024年04月27日
    浏览(17)
  • 关于 Delphi 11.3跨平台开发Android调用 JNI JAR java 的说明和注意事项

    关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2017.10.18 (* ************************************************ *) (* *) (* *) (* 设计:爱吃猪头肉 Flying Wang 2015-04-15  *) (* 上面的版权声明请不要移除。 *) (* *) (* ************************************************ *) 本人所

    2024年02月07日
    浏览(32)
  • 【LocalSend】开源跨平台的局域网文件传输工具,支持IOS、Android、Mac、Windows、Linux

    工作前提条件:设备使用相同的局域网。 LocalSend is a cross-platform app that enables secure communication between devices using a REST API and HTTPS encryption. Unlike other messaging apps that rely on external servers, LocalSend doesn’t require an internet connection or third-party servers, making it a fast and reliable solution for local

    2024年02月17日
    浏览(24)
  • Android:手把手带你入门跨平台UI开发框架Flutter,渣本Android开发小伙如何一步步成为架构师

    3.1 框架结构 Flutter框架主要分为两层:FrameWork层、Engine层,如下图所示: 说明:开发时,主要基于Framework层;运行时,则是运行在 Engine上。每层的具体介绍如下: 3.2 原理概述 开发时,主要基于Framework层;运行时,则是运行在 Engine上 Engine是Flutter的独立虚拟机,由它适配 提

    2024年04月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包