隐私与权限说明¶
权限配置说明¶
| 名称 | 必须 | 使用原因 |
|---|---|---|
READ_PHONE_STATE |
否 | 用于获取手机的蜂窝网设备信息 |
关于如何申请动态权限,具体详情参考 Android Developer
应对市场隐私审核¶
隐私声明¶
方式 1: SDK AndroidID 配置¶
SDK 为更好关联相同用户数据,会使用 Android ID。如果需要在应用市场上架,建议在用户同意隐私协议后再开启。
public class DemoApplication extends Application {
@Override
public void onCreate() {
// 在初始化设置时将 setEnableAccessAndroidID 设置为 false
FTSDKConfig config = new FTSDKConfig.Builder(DATAKIT_URL)
.setEnableAccessAndroidID(false)
.build();
FTSdk.install(config);
// ...
}
}
// 用户同意隐私协议后再开启
FTSdk.setEnableAccessAndroidID(true);
方式 2:延迟初始化 SDK¶
如果需要在应用中延迟加载 SDK,建议在用户同意协议后再完成初始化。
// Application
public class DemoApplication extends Application {
@Override
public void onCreate() {
// 如果已经同意协议,在 Application 中初始化
if (agreeProtocol) {
FTSdk.init(); // SDK 初始化伪代码
}
}
}
// 隐私声明 Activity 页面
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// 未阅读隐私声明
if (notReadProtocol) {
// 隐私声明弹出弹窗
showProtocolView();
// 如果同意隐私声明
if (agreeProtocol) {
FTSdk.init(); // SDK 初始化伪代码
}
}
}
}
// Application
class DemoApplication : Application() {
override fun onCreate() {
// 如果已经同意协议,在 Application 中初始化
if (agreeProtocol) {
FTSdk.init() // SDK 初始化伪代码
}
}
}
// 隐私声明 Activity 页面
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
// 未阅读隐私声明
if (notReadProtocol) {
// 隐私声明弹出弹窗
showProtocolView()
// 如果同意隐私声明
if (agreeProtocol) {
FTSdk.init() // SDK 初始化伪代码
}
}
}
}
第三方框架¶
flutter、react-native、uni-app、unity 可以采用与原生 Android 相似的延迟初始化方式,来应对应用市场隐私审核。