Unity打开安卓设备不同的设置面板
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-cnpublic 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对象,并指定要启动的ActivityAndroidJavaObject intentObj = new AndroidJavaObject("android.content.Intent");intentObj.Call<AndroidJavaObject>("setAction", action);// 启动ActivitycurrentActivity.Call("startActivity", intentObj);}#endregionprivate 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对象,并指定要启动的ActivityAndroidJavaObject intentObj = new AndroidJavaObject("android.content.Intent");intentObj.Call<AndroidJavaObject>("setAction", action);// 启动ActivitycurrentActivity.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_TASKcurrentActivity.Call("startActivity", intentObj);}
}
相关文章:
Unity打开安卓设备不同的设置面板
1,打开安卓设备不同的设置面板,我还贴心的把Android官网的链接放下面了 2,使用也很方便:unity按钮事件上拖这个脚本,注册MyOpenAndroidSettings方法,参数 填 和枚举值相应的数字 // 功能:打开…...
低空经济+无人机:低空物资运输技术详解
随着科技的飞速发展和航空产业的日益壮大,低空经济已成为全球经济的重要组成部分。无人机作为低空经济的重要载体,其在低空物资运输领域的应用逐渐凸显,为物流、救援等多个领域带来了革命性的变革。 一、低空经济概述 低空经济是指在垂直高度…...
全场景智能终端RK3288主板在智能垃圾回收项目的应用,支持鸿蒙,支持全国产化
全场景智能终端主板AIoT-3588A推出的智能化垃圾回收项目,旨在解决城市化进程中日益突出的垃圾处理问题。智能垃圾分类箱具备触屏操作、自动称重、分类投放以及电子语音播报提示等多项功能,居民能够经过分类积分卡、手机扫码、人脸识别等多种途径进行投放…...
QT设计模式:建造者模式
基本概念 建造者模式是一种创建型设计模式,它允许你创建复杂对象的过程独立于该对象的组成部分以及它们的组装方式。这样可以构造出不同的对象表示。 在建造者模式中,将创建对象的过程和对象的表示分离,通过一步步的构建,可以得…...
个人微信api
简要描述: 退出群聊 请求URL: http://域名地址/quitChatRoom 请求方式: POST 请求头Headers: Content-Type:application/json Authorization:login接口返回 参数: 参数名 必选 类型 …...
使用Ownips工具获取海外电商网站wish商品价格
一、引言 在数字化浪潮汹涌的今天,互联网已经成为我们生活、工作中不可或缺的一部分。而在这个虚拟的世界里,每一个设备都需要一个独特的标识来确保信息的准确传递,这个标识就是IP地址。而在众多IP地址中,静态IP因其独特的稳定性…...
【FFmpeg】调用ffmpeg进行H264软解
调用FFmpeg库实现264软件解码 1. FFmpeg的编译2. 调用FFmpeg实现H264软解2.1 基本框架2.2 代码实现2.3 测试结果 3. 分析工具3.1 码流分析3.2 YUV分析 示例工程 【FFmpeg】调用FFmpeg库实现264软编 1. FFmpeg的编译 FFmpeg在Windows下的编译参考:http://t.csdni…...
网络安全防护:抵御DDoS和CC攻击
在当今数字化时代,网络安全已成为任何组织或个人不可忽视的重要议题。DDoS(分布式拒绝服务)攻击和CC(命令与控制)攻击作为两种最为常见的网络攻击方式,给网络运营者和用户带来了巨大的威胁和影响。本文将介…...
初次查询大数据信用报告,需要注意哪些问题?
随着大数据的普及,基于大数据技术的大数据信用也变得越来越重要,比如在申贷之前,不少地方都会查询申贷人的大数据信用,作为风险控制的必要手段,那对于初次查询大数据信用报告的人来说,需要注意哪些问题呢?…...
最短路径[floyd算法]-----视频讲解+代码实现
求最短路径,一般有三种方法: 单源最短路径--Dijkstra算法 此算法只能求不带负权值的有向无环图 单源最短路径--Bellman-Ford算法(少考) 此算法优点在于:可以求带权值的右向无环图 但只是缺点明显,时间复杂度…...
图像/视频恢复和增强CodeFormer
github:https://github.com/sczhou/CodeFormer 尝试增强旧照片/修复人工智能艺术 面部修复 面部色彩增强和恢复 脸部修复...
WPF中ObservableCollection
在WPF(Windows Presentation Foundation)中,ObservableCollection<T> 是一个非常重要的类,它用于实现动态数据绑定功能。这个类位于 System.Collections.ObjectModel 命名空间中,是 ICollection<T>, IList…...
如何用鼠标点击在picturebox的图像上做标记
鼠标点击图像,在点击处画一个圆。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Threading.T…...
k8s介绍
一、前言 Kubernetes(通常简称为 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序,它提供了丰富的功能使得用户能够轻松地管理大规模的容器集群,包括自动化部署和扩展、服务发现和负载均衡、存…...
K-means聚类模型:深入解析与应用指南
K-means聚类是一种广泛使用的无监督学习算法,它通过迭代过程将数据集划分为K个聚类。以下是一篇关于K-means聚类模型的技术文章,将从不同的角度进行详尽的描述。 1. 引言 K-means聚类算法是一种简单且高效的聚类方法,广泛应用于数据挖掘、市…...
CTF-密码学基础
概述 密码学(Cryptolopy):是研究信息系统安全保密的科学 密码学研究的两个方向: 密码编码学(Cryptography):主要研究对信息进行编码,实现对信息的隐蔽密码分析学(Cryptanalytics):主要研究加密信息的破译或消息的伪造…...
代码随想录算法训练营day22 | 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
654.最大二叉树 和构造二叉树差不多,本题使用索引的方式 class Solution:def constructMaximumBinaryTree(self, nums: List[int]) -> Optional[TreeNode]:return self.traversal(nums, 0, len(nums)-1)def traversal(self, nums, left, right):if left > r…...
企业信息防泄漏软件分析:盘点常用企业信息防泄漏软件
在当今数字化时代,企业信息防泄漏软件已成为保障企业数据安全不可或缺的一环。市面上众多的防泄漏软件各具特色,如何从中挑选出最适合自己企业的产品,成为了一个值得深入探讨的话题。 一、企业信息防泄漏软件分析 首先,我们需要…...
Rancher-Kubewarden-保姆级教学-含Demo测试
一、什么是Kubewarden? What is Kubewarden? | Kubewarden 1、就是容器集群的准入策略引擎。 1、使用的策略其实就是k8s原生的security context. 2、使用WebAssembly来编写策略。 1、WebAssembly,可以使用擅长的开发语言来编写策略。(下面的…...
Lumerical Script ------ array 数组类型 和 matrix 矩阵类型
Lumerical Script ------ array 数组类型 和 matrix 矩阵类型 引言正文array 数组类型matrix 矩阵类型引言 这篇仅仅用作个人笔记,因为作者本人比较擅长 Python,每次写 Lumerical Script 总是会写错代码。 正文 array 数组类型 Lumerical Script 脚本有些像 Matlab 脚本,…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
