马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 blurred 于 2025-8-1 11:55 编辑
前言:
1.本方案由我和清奕云時想出,实现,以及测试
2.本方案在Ren'py-8.3.7能够实现效果,如果使用,请注意引擎版本
3.涉及到修改引擎的代码,所以请在事前把引擎目录下的rapt相关文件备份
4.知道怎么写html
5.这个方法有部分缺陷,看文尾。
压缩包https://www.renpy.cn/forum.php?mod=attachment&aid=MTY1MHwxNjYwY2Y2OXwxNzU0MDg1NzY5fDB8
按照压缩包里面的说明很详细,直接改就行了
目前在一个gal已经通过qɐꓕ审核
方法思路以及部分代码解释:
ren打包的安装包有一个特性,它不会要求额外权限(除了安装软件的储存权限),但是会在安装包启动的时候开始调用传感器,而部分安装包发布平台并不允许这样子,需要在权限申请或者隐私政策弹出一个窗口,窗口包含调用权限说明以及各种条例,用户同意后方可调用,这是大部分renpy引擎的apk被卡住审核的原因。
那么就是说renpy的传感器调用是在renpy引擎开始活动后,
所以我们可以在renpy的活动之前写一个活动,让允许在这个新的活动之前弹出我们要的所有东西,而在这个活动中,传感器并没有被调用。
renpy的安装包活动顺序有关文件在renpy引擎的rapt下的templates里面的app-AndroidManifest.xml中,这一部分就是写了renpy引擎的活动
在这里面的这一部分就是引擎活动
[RenPy] 纯文本查看 复制代码 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="{{ config.package }}">
<application
...省略
<activity
android:name="org.renpy.android.PythonSDLActivity"
android:label="@string/iconName"
android:alwaysRetainTaskState="true"
android:configChanges="layoutDirection|locale|orientation|uiMode|screenLayout|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
android:launchMode="singleTop"
android:screenOrientation="{{ config.orientation }}">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.amazon.device.iap.ResponseReceiver"
android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY">
<intent-filter>
...省略
这个文件的改动是:
这里加入就禁用了rnepy调用权限,其实不加也行,没有问题
[RenPy] 纯文本查看 复制代码 <!-- 权限设置 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 这里加入了各种传感器权限的取消申请 -->
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.light" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.proximity" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.compass" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.barometer" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.stepcounter" android:required="false"/>
<uses-feature android:name="android.hardware.sensor.stepdetector" android:required="false"/>
加入新的活动
[RenPy] 纯文本查看 复制代码 <application
android:label="@string/app_name"
android:icon="@drawable/android_icon"
android:hasCode="true"
android:allowBackup="false"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<!-- 启动页设为 MainActivity -->
<activity
android:name="org.renpy.android.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 游戏核心逻辑 Activity -->
<activity
android:name="org.renpy.android.PythonSDLActivity"
android:label="@string/iconName"
android:alwaysRetainTaskState="true"
android:configChanges="layoutDirection|locale|orientation|uiMode|screenLayout|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
android:launchMode="singleTop"
android:screenOrientation="landscape"
android:exported="true" />
</application>
这个新活动其实就是把一个java的界面显示出来,java界面里面又有一个html的引用,这个html就是自己写的隐私政策和其他条款什么的
缺点:(高情商:给后面的人优化空间 ;低情商:我太菜了,不会改 )
1.这个方案由于重新写了一个活动,所以在项目里面自己规定的安卓打包图标是不生效的(被顶替了),需要修改图标则要到drawable里面改
2.由于改的是引擎的内容,所以对于有多项目的来说,可能不同游戏的隐私政策不同,所以要多次写不同的html文件,或者在引用中多次改文件名字,很麻烦
3.这个隐私政策的窗口弹出是竖屏,其实没有多大影响,但横屏似乎效果更好。
|