Unity打开安卓设备不同的设置面板

news2024/11/17 12:28:50

1,打开安卓设备不同的设置面板,我还贴心的把Android官网的链接放下面了
2,使用也很方便:unity按钮事件上拖这个脚本,注册MyOpenAndroidSettings方法,参数 填 和枚举值相应的数字
在这里插入图片描述

//
功能:打开安卓设备不同的设置面板//
//
using UnityEngine;
using UnityEngine.UI;

public class OpenAndroidSettingsPanel : MonoBehaviour
{
    AndroidJavaObject currentActivity;                                     

    //Android 官方文档 执行各种操作和打开不同的设置面板 的链接
    //https://developer.android.com/about/versions/12/reference/common-intents-31?hl=zh-cn
    public enum AndroidSettingsPanel
    {
        HOME_SETTINGS,//设置启动器
        SETTINGS,//设置面板
        WEB_SEARCH,//浏览器
        WIFI_SETTINGS,//Wi-Fi 设置面板
        BLUETOOTH_SETTINGS, //蓝牙设置面板
        DATA_ROAMING_SETTINGS, //移动网络设置面板
        APPLICATION_SETTINGS,//应用程序管理设置面板
        DISPLAY_SETTINGS,//显示设置面板
        DATE_SETTINGS,//日期和时间设置面板
        INPUT_METHOD_SETTINGS,//语言和输入法设置面板
        LOCATION_SOURCE_SETTINGS,//位置设置面板
        INTERNAL_STORAGE_SETTINGS,//存储设置面板
        NOTIFICATION_SETTINGS,//通知设置面板
        IGNORE_BATTERY_OPTIMIZATION_SETTINGS,//电池优化设置面板
        ACCESSIBILITY_SETTINGS,//无障碍服务设置面板
        NETWORK_OPERATOR_SETTINGS,//移动网络运营商设置面板
        SOUND_SETTINGS,//声音设置面板
        SECURITY_SETTINGS,//安全设置面板
    }

    #region 测试
    int index;
    public InputField inputField;
    /// <summary>
    /// 打开相应的设置面板
    /// </summary>
    public void MyOpenAndroidSettings()
    {
        string action = SetAction(index);
        // 创建一个Android的Intent对象,并指定要启动的Activity
        AndroidJavaObject intentObj = new AndroidJavaObject("android.content.Intent");
        intentObj.Call<AndroidJavaObject>("setAction", action);
        // 启动Activity
        currentActivity.Call("startActivity", intentObj);
    }
    #endregion

    private void Start()
    {
        #region 测试
        inputField.onEndEdit.AddListener((str) =>
        {
            index = int.Parse(str);
            Debug.Log(index);
        });
        #endregion

        // 获取Unity的当前活动(Activity)对象
        AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
    }

    /// <summary>
    /// 设置action
    /// </summary>
    string SetAction(int androidSettingsPanel)
    {
        switch ((AndroidSettingsPanel)androidSettingsPanel)
        {
            case AndroidSettingsPanel.HOME_SETTINGS:
                return "android.settings.HOME_SETTINGS";
            case AndroidSettingsPanel.SETTINGS:
                return "android.settings.SETTINGS";
            case AndroidSettingsPanel.WEB_SEARCH:
                return "android.intent.action.WEB_SEARCH";
            case AndroidSettingsPanel.WIFI_SETTINGS:
                return "android.settings.WIFI_SETTINGS";
            case AndroidSettingsPanel.BLUETOOTH_SETTINGS:
                return "android.settings.BLUETOOTH_SETTINGS";
            case AndroidSettingsPanel.DATA_ROAMING_SETTINGS:
                return "android.settings.DATA_ROAMING_SETTINGS";
            case AndroidSettingsPanel.APPLICATION_SETTINGS:
                return "android.settings.APPLICATION_SETTINGS";
            case AndroidSettingsPanel.DISPLAY_SETTINGS:
                return "android.settings.DISPLAY_SETTINGS";
            case AndroidSettingsPanel.DATE_SETTINGS:
                return "android.settings.DATE_SETTINGS";
            case AndroidSettingsPanel.INPUT_METHOD_SETTINGS:
                return "android.settings.INPUT_METHOD_SETTINGS";
            case AndroidSettingsPanel.LOCATION_SOURCE_SETTINGS:
                return "android.settings.LOCATION_SOURCE_SETTINGS";
            case AndroidSettingsPanel.INTERNAL_STORAGE_SETTINGS:
                return "android.settings.INTERNAL_STORAGE_SETTINGS";
            case AndroidSettingsPanel.NOTIFICATION_SETTINGS:
                return "android.settings.NOTIFICATION_SETTINGS";
            case AndroidSettingsPanel.IGNORE_BATTERY_OPTIMIZATION_SETTINGS:
                return "android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS";
            case AndroidSettingsPanel.ACCESSIBILITY_SETTINGS:
                return "android.settings.ACCESSIBILITY_SETTINGS";
            case AndroidSettingsPanel.NETWORK_OPERATOR_SETTINGS:
                return "android.settings.NETWORK_OPERATOR_SETTINGS";
            case AndroidSettingsPanel.SOUND_SETTINGS:
                return "android.settings.SOUND_SETTINGS";
            case AndroidSettingsPanel.SECURITY_SETTINGS:
                return "android.settings.SECURITY_SETTINGS";
        }
        return null;
    }
    /// <summary>
    /// 打开相应的设置面板
    /// </summary>
    public void MyOpenAndroidSettings(int androidSettingsPanel)
    {
        string action = SetAction(androidSettingsPanel);
        // 创建一个Android的Intent对象,并指定要启动的Activity
        AndroidJavaObject intentObj = new AndroidJavaObject("android.content.Intent");
        intentObj.Call<AndroidJavaObject>("setAction", action);
        // 启动Activity
        currentActivity.Call("startActivity", intentObj);
    }
    /// <summary>
    /// 打开日历面板
    /// </summary>
    public void MyOpenCalendarPanel()
    {
        AndroidJavaObject intentObj = new AndroidJavaObject("android.content.Intent");
        intentObj.Call<AndroidJavaObject>("setAction", "android.intent.action.MAIN");
        intentObj.Call<AndroidJavaObject>("addCategory", "android.intent.category.APP_CALENDAR");
        intentObj.Call<AndroidJavaObject>("setFlags", 0x10000000); // Intent.FLAG_ACTIVITY_NEW_TASK
        currentActivity.Call("startActivity", intentObj);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【c++】线程池的原理及实现

&#x1f4bb;文章目录 &#x1f4c4;前言线程池的原理概念工作原理 线程池的实现线程池的基础结构任务队列的实现工作线程的实现 线程池的应用与拓展线程池的拓展 &#x1f4d3;总结 &#x1f4c4;前言 不知道各位是否有试过点进限时抽奖网站、抢票网站呢&#xff1f;你是否好…

静态分析-RIPS-源码解析记录-02

这部分主要分析scanner.php的逻辑&#xff0c;在token流重构完成后&#xff0c;此时ini_get是否包含auto_prepend_file或者auto_append_file 取出的文件路径将和tokens数组结合&#xff0c;每一个文件都为一个包含require文件名的token数组 接着回到main.php中&#xff0c;此时…

一款功能强大的网络安全综合工具-PotatoTool

一、 简介 这款工具是一款功能强大的网络安全综合工具&#xff0c;旨在为安全从业者、红蓝对抗人员和网络安全爱好者提供全面的网络安全解决方案。它集成了多种实用功能&#xff0c;包括解密、分析、扫描、溯源等&#xff0c;为用户提供了便捷的操作界面和丰富的功能选择。 二…

《Fundamentals of Power Electronics》——状态空间平均法

文献中出现了许多交流变换器建模技术&#xff0c;包括电流注入法、电路平均法和状态空间平均法。尽管给定方法的支持者可能更喜欢用特定形式表示最终结果&#xff0c;但几乎所有方法的最终结果都是等效的。所有人都会赞同&#xff0c;平均和小信号线性化是PWM变换器建模的关键步…

厚德提问大佬答4:AI绘画生成的心得

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德云替你问&#xff0c;你解…

Element-plus修改input的placeholder文字颜色

需求 代码 .el-input__inner::placeholder {color: #666f8d !important; }

图像处理--空域滤波增强(原理)

一、均值滤波 线性滤波算法&#xff0c;采用的主要是邻域平均法。基本思想是使用几个像素灰度的某种平均值来代替一个原来像素的灰度值。可以新建一个MN的窗口以为中心&#xff0c;这个窗口S就是的邻域。假设新的新的像素灰度值为&#xff0c;则计算公式为 1.1 简单平均法 就是…

堆的应用2——TOPK问题

TOPK问题 TOP-K问题&#xff1a;即求数据结合中前K个最大的元素或者最小的元素&#xff0c;一般情况下数据量都比较大。 比如&#xff1a;专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 情况1——数据量小 对于Top-K问题&#xff0c;能想到的最简单直接的方式就…

品鉴中的文化碰撞:如何理解和欣赏不同文化背景下的红酒

红酒作为世界各地广泛生产的产品&#xff0c;具有丰富的文化内涵。不同国家、地区和民族的红酒文化各具特色&#xff0c;反映了当地的历史、传统、习俗和生活方式。在品鉴云仓酒庄雷盛红酒时&#xff0c;理解和欣赏不同文化背景下的红酒是提升品鉴体验的重要一环。 首先&#x…

【Java orm 框架比较】九 新增wood框架对比

【Java orm 框架比较】九 新增wood框架对比 本次新增wood 框架测试 测试数据存储、分页查询&#xff0c;文档及框架比较稳定半天时间加入测试使用 迁移到&#xff08;https://gitee.com/wujiawei1207537021/spring-orm-integration-compare&#xff09; orm框架使用性能比较…

【STM32 |GPIO】GPIO结构、GPIO输出

目录 GPIO简介 GPIO的基本结构 GPIO位结构&#xff08;每一位的具体电路结构&#xff09; 输入 上拉和下拉电阻 斯密特触发器 ​编辑 输出 GPIO模式 ​编辑 浮空输入、上拉输入、下拉输入 模拟输入 开漏输出和推挽输出 复用开漏输出和复用推挽输出 LED和蜂鸣器…

代码随想录算法训练营第36期DAY22

DAY22 654最大二叉树 自己做的时候忽略了&#xff1a;nums.length>1的题给条件。所以每次递归都要判断是否size()>1&#xff0c;不要空的。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig…

JSpdf,前端下载大量表格数据pdf文件,不创建dom

数据量太大使用dom》canvas》image》pdf.addimage方法弊端是canvas超出 浏览器承受像素会图片损害&#xff0c;只能将其切割转成小块的canvas,每一次调用html2canvas等待时间都很长累积时间更长&#xff0c;虽然最终可以做到抽取最小dom节点转canvas拼接数据&#xff0c;但是死…

[附源码+视频教程]暗黑纪元H5手游_架设搭建_畅玩三网全通西方3D世界_带GM

本教程仅限学习使用&#xff0c;禁止商用&#xff0c;一切后果与本人无关&#xff0c;此声明具有法律效应&#xff01;&#xff01;&#xff01;&#xff01; 教程是本人亲自搭建成功的&#xff0c;绝对是完整可运行的&#xff0c;踩过的坑都给你们填上了 一. 演示视频 暗黑纪…

Android 查看CUP占用率

查看每个进程CUP占用率的几种方式,由于自己充电界面老是导致整机温度过高&#xff0c;后面发现自己的线程一直在跑&#xff0c;相当于死循环&#xff0c;后面加上sleep才得以改善&#xff1b;先看看几种查询方式吧。 1、adb shell top 2、adb shell busybox top 3、adb shell …

C++类和对象中篇

&#x1f407; &#x1f525;博客主页&#xff1a; 云曦 &#x1f4cb;系列专栏&#xff1a;[C] &#x1f4a8;路漫漫其修远兮 吾将而求索 &#x1f49b; 感谢大家&#x1f44d;点赞 &#x1f60b;关注&#x1f4dd;评论 文章目录 &#x1f4d4;前言&#x1f4d4;1、类的六个…

微服务学习笔记

微服务学习笔记 文章目录 微服务学习笔记认识微服务微服务技术栈微服务学习要点微服务远程调用1)注册RestTemplate2) 服务远程调用RestTemplate Eureka注册中心简介操作过程搭建EurekaServer注册user-service在order-service完成服务拉取 Ribbon负载均衡IRule负载均衡策略饥饿加…

在线扭蛋机小程序:商家稳占市场的新突破口

近几年&#xff0c;扭蛋机进入了爆发期&#xff0c;动漫、游戏的发展更是推动了市场的发展&#xff0c;我国扭蛋机正在蓬勃发展中。 不过&#xff0c;在市场规模扩大下&#xff0c;扭蛋机行业的竞争力也在同时加大&#xff0c;企业商家需要在市场竞争中寻求发展新思路&#xf…

SEQUENTIAL CONSISTENCY----SC

SC模型是最直观的memory consistency model; 什么是single core sequential? 真正的执行顺序&#xff0c;和PO的顺序&#xff0c;是相同的&#xff1b; 什么是multi core sequential consistent? the operations of each individual processor (core) appear in this seq…

【知识碎片】2024_05_08

记录了两个代码和一个C语言switch的题。代码【错误的集合】使用到了hash&#xff0c;【密码检查】是对多个字符串输入的检查&#xff0c;有一些条件细节。两个代码都是关于数组内容操作的题目。 每日代码 1.错误的集合 错误的集合-力扣&#xff08;LeetCode 也是数组的操作&…