android 保存手机邮件中的邮箱地址到联系人,邮箱地址丢失的问题

1.手机插入普通SIM卡
2.登录邮箱并添加邮箱地址到SIM卡中;
3.发现邮箱地址没有添加进入,只添加进了姓名或电话号码
 这是Google Default行为,在保存时,会进行安全检查,发现有不合法的字段时会自动过滤掉该字段。
对于Sim卡,不支持Email字段,所以会过滤掉该字段。
 
如果不想要这样的行为,想修改为当发现保存的内容中有Email字段,就不显示出SIM帐号,可按如下方式修改。
 
一共需要修改3个文件:
 
1.  com.android.contacts.editor.ContactEditorFragment
 
找到Intent intent = new Intent(mContext, ContactEditorAccountsChangedActivity.class);
在其下面添加一行:intent.putExtra("data", mIntentExtras);
 
2.com.android.contacts.activities.ContactEditorAccountsChangedActivity
 
找到mAccountListAdapter = new AccountsListAdapter(this, AccountListFilter.ACCOUNTS_CONTACT_WRITABLE);
在其下面添加一行:mAccountListAdapter.filterAccountWithBundle(getIntent().getBundleExtra("data"));
 
3.com.android.contacts.util.AccountsListAdapter
   在该文件中添加这个方法:
    public void filterAccountWithBundle(Bundle bundle){
        if(bundle == null){
            return;
        }
        String email = bundle.getString("email");
        if(!TextUtils.isEmpty(email)){
            int count = getCount();
            for (int i = count - 1; i >= 0; i--) {
                if (mAccounts.get(i).type.equals("SIM Account")) {
                    mAccounts.remove(i);
                }
            }
        }
    }

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。