Android Gmail 邮件签名客制化需求

需求描述:

  • When SKUI ID is 600TEL or 600CLA, When sending an email, it must be configure the signature:
    Telcel: “Enviado desde mi <Name of Brand> de Telcel.” 
    Claro: “Enviado desde mi <Name of Brand> de Claro.” Where: 
    <Name of Brand> refers to Manufacturer.See <Quick Introduction to the Email PartnerProvider App for Android Go>
  • Telcel is: “Enviado desde mi Nokia de Telcel.”

     Claro is: “Enviado desde mi Nokia de Claro.”

在Google提供的GmailPartnerProvider中进行客制化,注:经同google确认过,该需求的全局签名对其他三方的邮箱签名都是有效的,除了gmail邮箱账号外。即使用Gmail登录163、QQ、Microsoft邮箱,邮箱签名有效,登录Gmail账户邮箱签名无效。

 

 
第一步:配置GmailPartnerProvider

java/com/android/email/partnerprovider/PartnerProvider.java

在public Cursor query()方法中,case MATCH_GLOBAL_SIGNATURE时修改globalSignature,return 包含globalSignature该的cursor:

      case MATCH_GLOBAL_SIGNATURE:

        cursor = new MatrixCursor(GLOBAL_SIGNATURE_COLUMNS);

        //+added

        String globalSignature = "";

        String str = getProperty("ro.boot.skuid", "");

        if("600TEL".equals(str)||"600CLA".equals(str)) {

         Resources res = getContext().getResources();

         Configuration config = res.getConfiguration();

            globalSignature = getContext().getString(R.string.global_signature);

            Log.e(TAG, "chentest mmc=" + Integer.toString(config.mcc)

                    + "-mnc=" + Integer.toString(config.mnc) + " globalSignature: " + globalSignature);

        }

        //-added

        if (!TextUtils.isEmpty(globalSignature)) {

          cursor.addRow(new Object[] {globalSignature});

        }

        return cursor;

res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

  <string name="global_signature">Sent from Android device</string>

</resources>

同时可在不同的mcc/mnc string中根据不同SIM卡显示不同的语言,比如,res/values-mcc330-mnc110/strings.xml

<resources>

  <string name="global_signature">Enviado desde mi Nokia de Claro.</string>

</resources>
res/values-mcc334-mnc020/ strings.xml
<?xml version="1.0" encoding="utf-8"?>

<resources>

  <string name="global_signature">Enviado desde mi Nokia de Telcel.</string>

</resources>
 

×注:

若是Android Go项目,应修改AndroidManifest,xml

扫描二维码关注公众号,回复: 10849591 查看本文章
    <provider

      android:name=".PartnerProvider"

      android:authorities="com.android.email.partnerprovider.lite"

      android:exported="true"

      android:permission="com.android.email.partnerprovider.PARTNER_PROVIDER" />

  </application>

同时在java/com/android/email/partnerprovider/PartnerProvider.java

  static final String AUTHORITY = "com.android.email.partnerprovider.lite";

若非Android Go项目,AndroidManifest,xml

    <provider

      android:name=".PartnerProvider"

      android:authorities="com.android.email.partnerprovider"

      android:exported="true"

      android:permission="com.android.email.partnerprovider.PARTNER_PROVIDER" />

  </application>

同时在java/com/android/email/partnerprovider/PartnerProvider.java

  static final String AUTHORITY = "com.android.email.partnerprovider";

第二步,Android.mk文件

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := GmailPartnerProvider
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := platform
LOCAL_SDK_VERSION := current
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_SRC_FILES := $(call all-java-files-under)

include $(BUILD_PACKAGE)

第三步:将GmailPartnerProvider加入编译

android/device/qcom/项目/ 项目.mk

#+add

PRODUCT_PACKAGES += \

  GmailPartnerProvider
 
发布了31 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u012824529/article/details/104008395
今日推荐