Toxic Star - Android
type: channel
link: https://toxicstar.top/index.php/tag/Android/
items: Unity中实现安卓PIP(画中画/小窗)模式
items: 支付宝和微信支付安卓版接入Unity说明（2023版）

Unity中实现安卓PIP(画中画/小窗)模式
type: item
date: 2023-12-07T16:31:00+08:00
description: 效果预览实现部分1.找到Unity工程内部的AndroidManifest.xml进行改造，找到如下内容： <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> 2.在 标签里添加如下：android:supportsPictureInPicture="true" android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" [collapse status="false" title="对于标签的解释"]android:supportsPictureInPicture="true"：这个属性用于声明该 Activity 支持画中画模式。这样，当用户按下 Home 键或者切换到其他应用时，你的应用就有可能进入画中画模式。这个属性的值为布尔型，表示是否支持画中画模式。android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"：这个属性用于配置在特定配置更改时 Activity 是否应该被销毁并重新创建。在这里，你声明了在屏幕大小变化、最小屏幕大小变化、屏幕布局变化、屏幕方向变化时，Activity 不会被销毁，而是系统将调用 onConfigurationChanged 方法。这对于画中画模式很重要，因为在画中画模式下，屏幕大小和方向可能会发生变化。[/collapse]修改后代码如下： <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> 3.编写一个Activity继承自UnityPlayerActivity，写入函数然后在Unity中显式调用即可，部分机型支持直接调用无需显式调用，函数如下：/** * 小窗悬浮 */ public void EnterPIPMode() { enterPictureInPictureMode(new PictureInPictureParams.Builder().build()); }

支付宝和微信支付安卓版接入Unity说明（2023版）
type: item
date: 2023-06-15T11:30:00+08:00
description: [scode type="blue"]环境配置[/scode]Unity版本：2021.3.11fAndroid Studio版本：2022.2.1 Patch 2 内部版本号#AI-222.4459.24.2221.10121639JDK版本17.0.6Android API 最低级别：Android 6.0(API Level 23)[scode type="blue"]Android Studio配置[/scode]文件-设置，进入以下界面。 工具-SDKManager，安装对应的Android SDK版本。 文件-新建-新建项目，选择No Activity，填写项目信息，选择完成后等待下载完成。 左上角点击Android将模式切换为项目。 右键根目录-新建-Module，把ModuleName随便填写一下。 打开pay项目下的build.gradle，在dependencies中填写如下两句话之后。//导入libs文件夹下后缀为.jar和.aar的文件，这里用于支付宝和Unity的SDK存放 implementation fileTree(dir: 'libs', include: ['*.jar','*.aar']) //导入微信的SDK，从网络直接下载到库中 implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' 点击右上角Sync Now同步，点击下方菜单中的构建，显示打钩即可。打开Unity安装目录找到Classes，我使用的是IL2CPP和Release，所以目录是C:\Program Files\Unity\Hub\Editor\2021.3.11f1c2\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes，如果使用Mono切换到Variations选择Mono即可，如果使用Develop切换到il2cpp选择Development即可。将该目录下的classes.jar放到项目里的libs文件夹下即可完成UnitySDK的导入。打开从支付宝官网下载的AliPaySDKDemo，点这里前往支付宝开发者中心下载，打开之后在左侧外部库里找到alipaysdk-android-15.8.14，将其中的classes.jar改名为alipaysdk-android-15.8.14.jar，同第九步丢入项目里的libs文件夹下，如此一来，支付宝SDK和微信SDK的前置准备工作就完成了。 接下来在项目中右键pay-新建-Activity-Empty Views Activity，新建一个页面，配置如图，包名与项目包名一致。 如果版本比较早的可以在如图所示下找到UnityPlayerActivity，可以直接略过这一步。如果找不到的情况下打开C:\Program Files\Unity\Hub\Editor\2021.3.11f1c2\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player，找到UnityPlayerActivity.java，放入到与MainActivity.java同级目录下。 接下来对AndroidManifest.xml进行改造，打开pay/src/main目录下的AndroidManifest.xml修改为如下代码：<?xml version="1.0" encoding="utf-8"?> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <action android:name="android.intent.action.…