android_ 极光注册会生成相同注册ID的解决方法_011

  极光注册会生成相同注册ID的解决方法
一、极光不能接收到推送是因为不同设备注册生成了相同的注册ID
1、问题根本原因是两个设备拿到同个注册regid ,而拿到同个regid原因是因为极光SDK延迟拿到imei , mac地址又取不到,
但rom给的android id 一样,导致在mac地址拿不到的情况下根据Android id重复注册,从而使不同的设备拿到相同的注册
regid(android id 一样)。


二、解决方法有两种:
1、确认imei 拿到的情况下,先清掉之前的缓存,然后走注册。
2 、保证我们每台设备的Android ID 唯一性 ,或者用SN号替代Android ID ,这样需要极光特别给我们定制SDK。

 

三、以下是清理极光注册ID缓存的方法(极光官方文档未给出):

 public static String JIG_DEVICEID = Environment
            .getExternalStorageDirectory().getPath() + "/data/.push_deviceid";
    public static String JIG_GENERATED = "devcie_id_generated";
    public static String JIG_PROFILE = "cn.jpush.android.user.profile";
    /** 清理极光设备ID **/
    public static final void deleteJiguangDevice_id(Context ctx) {
        Log.d(TAG, "deleteJiguangDevice_id()");
        SharedPreferences sharedPreferences = ctx.getSharedPreferences(
                JIG_PROFILE, Context.MODE_MULTI_PROCESS);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(JIG_GENERATED, "");
        editor.commit();
    }
    /****
     * 清理极光注册设备 ID缓存
     * 
     * @param context [参数说明]
     * @return void [返回类型说明]
     */
    public static void deleteJiGuanDevice_Regid(Context context) {
        Log.d(TAG, "deleteJiGuanDevice_Regid()");
        SharedPreferences sharedPreferences = context.getSharedPreferences(
                JIG_PROFILE, Context.MODE_MULTI_PROCESS);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("device_registration_id", "");
        editor.commit();
    }
    /***
     * 清理极光缓存的IMEI 每次开机都清理
     * 
     * @param context [参数说明]
     * @return void [返回类型说明]
     */
    public static void deleteJiGuanDevice_Imei(Context context) {
        Log.d(TAG, "deleteJiGuanDevice_Imei()");
        SharedPreferences sharedPreferences = context.getSharedPreferences(
                "cn.jpush.preferences.v2", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("imei", "");
        editor.commit();
    }
    /****
     * 删除掉极光设备ID<功能描述>
     * 
     * @param context [参数说明]
     * @return void [返回类型说明]
     */
    public static void deleteJguangSettingDevice_id(Context context) {
        Log.d(TAG, "deleteJguangSettingDevice_id()");
        Settings.System.putString(context.getContentResolver(), JIG_GENERATED,
                "");
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值