当前位置:   article > 正文

react-native 调用Settings.Secure.getstring获取了android_id / app上架违规获取android_id被拒_com.learnium.rndevicelnfo.rndevicemodule.getunique

com.learnium.rndevicelnfo.rndevicemodule.getuniqueldsync

华为上架时,被违规获取android_id原因拒绝上架, 使用HookLoginDemo检测结果如下

2022-06-08 10:36:49.956 28518-28550/? D/HookLogin: 调用Settings.Secure.getstring获取了android_id
2022-06-08 10:36:49.957 28518-28550/? E/HookLogin: java.io.IOException
        at com.example.hooklogin.HookLogin.getMethodStack(HookLogin.java:213)
        at com.example.hooklogin.HookLogin.access$000(HookLogin.java:23)
        at com.example.hooklogin.HookLogin$6.afterHookedMethod(HookLogin.java:184)
        at de.robv.android.xposed.DexposedBridge.handleHookedArtMethod(DexposedBridge.java:265)
        at me.weishu.epic.art.entry.Entry64.onHookObject(Entry64.java:64)
        at me.weishu.epic.art.entry.Entry64.referenceBridge(Entry64.java:239)
        at com.learnium.RNDeviceInfo.RNDeviceModule.getUniqueIdSync(RNDeviceModule.java:658)
        at com.learnium.RNDeviceInfo.RNDeviceModule.getConstants(RNDeviceModule.java:162)
        at com.facebook.react.bridge.JavaModuleWrapper.getConstants(JavaModuleWrapper.java:128)
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:26)
        at android.os.Looper.loop(Looper.java:227)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:225)
        at java.lang.Thread.run(Thread.java:919)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
HookLoginDemo使用方式百度一下
经过排查at com.learnium.RNDeviceInfo.RNDeviceModule.getUniqueIdSync(RNDeviceModule.java:658)确定是第三方依赖react-native-device-info导致的问题
解决方案 : 将import导入改为内联应用
import DeviceInfo from 'react-native-device-info';
const getDevicesId = () => {
	return DeviceInfo.getUniqueId()
}
  • 1
  • 2
  • 3
  • 4

修改为

const getDevicesId = () => {
	const DeviceInfo = require('react-native-device-info').default;
	return DeviceInfo.getUniqueId()
}
  • 1
  • 2
  • 3
  • 4
补充:该方法还是会获取android_id,,,此处理的原因是,调用该组件的方法前,用户已经同意隐私政策,即:用户首次启动并同意隐私政策,后续使用该组件库的时候再获取android_id,不会被商店视为违规

原文: http://t.csdn.cn/jswba

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/390009
推荐阅读
相关标签
  

闽ICP备14008679号