AppActivity intent FLAG_ACTIVITY_BROUGHT_TO_FRONT 通过activity中转达不到效果,还是得回到修改引擎的代码上,希望官方同学能出修复版本。activity中转达不到效果也可能是我版本问题。
两处的堆栈信息:
android.hardware.SensorManager.getSensorList(SensorManager.java:436)<---android.hardware.SensorManager.getDefaultSensor(SensorManager.java:528)<---android.view.OrientationEventListener.<init>(OrientationEventListener.java:71)<---android.view.OrientationEventListener.<init>(OrientationEventListener.java:56)<---org.cocos2dx.lib.Cocos2dxOrientationHelper.<init>(Unknown Source:0)<---org.cocos2dx.lib.Cocos2dxActivity.init(Unknown Source:112)<---org.cocos2dx.lib.Cocos2dxActivity.onCreate(Unknown Source:83)<---org.cocos2dx.javascript.AppActivity.onCreate(Unknown Source:7)<---android.app.Activity.performCreate(Activity.java:7070)<---android.app.Activity.performCreate(Activity.java:7061)<---android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)<---android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3067)<---android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3191)<---android.app.ActivityThread.-wrap11(Unknown Source:0)<---android.app.ActivityThread$H.handleMessage(ActivityThread.java:1921)<---android.os.Handler.dispatchMessage(Handler.java:106)<---android.os.Looper.loop(Looper.java:164)<---android.app.ActivityThread.main(ActivityThread.java:6843)<---java.lang.reflect.Method.invoke(Native Method)<---com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)<---com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
android.hardware.SensorManager.getSensorList(int)
android.hardware.SensorManager.getDefaultSensor(SensorManager.java:490)
android.view.OrientationEventListener.<init>(OrientationEventListener.java:71)
android.view.OrientationEventListener.<init>(OrientationEventListener.java:56)
org.cocos2dx.lib.Cocos2dxOrientationHelper.<init>(Unknown Source:0)
org.cocos2dx.lib.Cocos2dxActivity.init(Unknown Source:112)
org.cocos2dx.lib.Cocos2dxActivity.onCreate(Unknown Source:83)
org.cocos2dx.javascript.AppActivity.onCreate(Unknown Source:7)
android.app.Activity.performCreate(Activity.java:7144)
android.app.Activity.performCreate(Activity.java:7135)
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
java.lang.reflect.Method.invoke(Native Method)
这两处都和这个函数有关系,org.cocos2dx.lib.Cocos2dxOrientationHelper.(Unknown Source:0)
org.cocos2dx.lib.Cocos2dxActivity.java
Cocos2dxAccelerometer.java
两个文件对应修改,就可以,送审传感器的问题已经不报了。
虽然解决问题了,还是希望官方能给出更好的解决方法。
/Applications/CocosCreator/Creator/2.4.5/CocosCreator.app/Contents/Resources/cocos2d-x/cocos/platform/android/java/src/org/cocos2dx/lib
Cocos2dxAccelerometer.java
Cocos2dxActivity.java
修改见附件
fix_code.zip (8.7 KB)
直接在隐私政策把传感器加上就行了,不用改代码
你意思是在隐私政策里面加使用的描述吗?只是,不清楚有什么传感器被监听,该描述什么。如果有个范本,可以教教我们,我也被卡住了。也就小米卡住了。其他,什么vivo和华为这些,也没见这么麻烦。
这个方式就可以了
并不是,这里的问题是,在使用传感器接口 是需要在 隐私弹框 用户点同意之后。引擎这边是启动游戏就去调用了传感器相关接口,都还没弹框。
这类隐私政策的问题,一般是检测机构检测到您的app在同意隐私政策之前就有权限请求的动作。可以尝试在MainActivity创建的时候首先弹出隐私政策窗口,同意之后再进行后续初始化操作。
还是回来说一下吧。小米审核通过了。因为各个平台检测不一样,目前我上的渠道,只有 应用宝和小米有获取传感器隐私政策的问题。其他华为、百度、vivo、oppo、联想、阿里系(豌豆荚、pp助手)等没有提过传感器问题,或许以后严格了也会有。说说几点吧。
1 上面的修改底层代码是有效的。起码小米检测报告中,没有了传感器问题。
2 又因为获取IP问题,打了回来。
3 终极解决方案,还是要在引擎启动前,添加启动页弹窗来解决。
4 我用的是在cocos商店买的 安卓弹窗 的代码通过了小米审核。
大家好,在 3.7.0 已经对此问题做了修正,这是引擎修复 pr:disable unused code by bofeng-song · Pull Request #13591 · cocos/cocos-engine · GitHub ,大家可以参考此修复处理问题。
2x的2.11还有这个问题么
我也是用了 cocos商店买的 安卓弹窗 的方案
2.4.6的该怎么改呢?
楼主的解决方案亲测有效,你也可以试一试。
我就是按照楼主的方式,把那两个JAVA类给修改了,可还是不行,被拒审了 

: