需求描述:

  • 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);//+addedString 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);}//-addedif (!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

    <providerandroid: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

    <providerandroid: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

#+addPRODUCT_PACKAGES += \GmailPartnerProvider

Android Gmail 邮件签名客制化需求相关推荐

  1. android 7.0平台客制化虚拟导航按键(隐藏NavigationBar,上滑显示NavigationBar)

    如图,需求是增加一个按钮可以隐藏NavigationBar,上滑显示NavigationBar. 参考文章: Android 8.1平台客制化虚拟导航按键 Android 7.0 虚拟按键(Navig ...

  2. Android 12.0 Launcher客制化指导手册

    主要包含 Launcher3升级变化:小部件变化 . Go版本差异.支持自动生成Work文件夹 . UI客制化 :桌面布局 .布局配置 .预置图标 .图标客制化 .待机界面客制化.应用抽屉客制化 功能 ...

  3. Android 5.0 Launcher客制化定制之 主题包协议(MIUI主题、乐蛙主题兼容)

    Android 5.0 Launcher客制化定制之 主题包协议(MIUI主题.乐蛙主题兼容) 春节更新

  4. Android 8.1平台客制化虚拟导航按键

    文章目录 @[toc] 需求 运行截图 代码修改步骤 欢迎关注公众号,给你更多技术干货: 需求 基于MTK8163 8.1平台定制导航栏部分,在左边增加音量减,右边增加音量加 运行截图 代码修改步骤 ...

  5. SM30 标准程序 添加事件、checkbox 等客制化需求

    接到一个需求,新建 一个add on 表,并且生成sm30的维护视图 .但是要在视图中,针对某些字段显示描述. 大致需求如下, 1 维护视图中,针对代理人 和 被代理人,是系统账号, 所以需要带出姓名 ...

  6. Android 手机按键客制化详解

    在Android 中会有以下5个按键(Back.Home.Menu.Power.Volume)与用户进行交互,Framework 层中实现按键功能,因此,从手机系统定制的角度,可以满足客户的客制化要求 ...

  7. 手机应用商城的本质是实现手机的大规模客制化

    一.首先,本文的前提观点是:同类产品匮乏让大规模更具价值,同类产品充裕让客制化更具价值 比如冰箱刚出的时候,市面上产品比较少,竞争对手也少,那么大规模生产可以有效地控制成本和质量,这样做对企业而言是比 ...

  8. Android实现客制化系统apk在线签名

    目录 一.基线代码签名key 二.如何生成自定义的签名pk8 .x509.pem 签名文件 三.如何使用签名key对apk进行重新签名 四.大厂商为了安全,使用自定义签名方式,而不采用原生的签名方式 ...

  9. Android 11.0 充电指示灯红绿显示简单客制化

    客制化充电指示灯的文章在网上也有不少了,项目的需求是在百分百情况下量绿灯,其它情况下都是红灯,这里简单记录下在Android11,kernel-4.19版本下的修改内容,也给有相关需求的各位提供下思路 ...

  10. Android 系统(251)---sec2.0和sec2.1新增分区DA客制化步骤

    sec2.0和sec2.1新增分区DA客制化步骤 在sec2.0和sec2.1中,如果客户新增分区超过两个,又不想用DA中默认的sec policy,可以按如下方法进行配置. 以MT6739为例,增加 ...

最新文章

  1. junit集成Hamcrest测试集合中某个属性是否包含特定值
  2. 语音识别、传统语音识别、带权有限转态转换器、深度语音识别、时序分类、CTC解码
  3. 在特定索引处插入字符串
  4. WGS84经纬度坐标与WEB摩卡托坐标转换
  5. 当12C PDB遇上JDBC
  6. Fifth scrum meeting - 2015/10/30
  7. nls_lang.sh: 114: [[: not found
  8. Java的native方法java.lang.UnsatisfiedLinkError
  9. IBM最新调研表明:大数据等于大回报
  10. CentOS 7, apm+xcache, rpm包, php module
  11. matlab作函数图像,matlab绘制函数图像
  12. SU插件|TopoShaper生成地形 免费下载及介绍(SketchUp草图大师必备)!
  13. 微信H5禁止分享功能
  14. 微信公众号开发之使用eclipse创建微信web工程并发布到BAE测试
  15. 2020年书法落款_散文书法落款-2020年书法落款怎么写?
  16. 炫龙笔记本安装Ubantu系统
  17. iisnbsp;访问输入用户名和密码问题
  18. 2018年了,希望所有的程序员都能逃过这些梗……
  19. Unity获取NoloVR手柄
  20. 51单片机热敏打印自助排队叫号系统银行医院柜台DY-SV17F语音播报

热门文章

  1. 微信个性化菜单 java_微信公众平台开发(109) 个性化菜单
  2. Arthas线上问题定位神器
  3. 若干思考:从如何确定投资者是风险偏好者、风险中性者还是风险规避者 到 上学真的无用吗的思考?
  4. linux 利用缓存文件.swp恢复源文件
  5. 如何管理一个外包团队小总结
  6. nginx: [error] OpenEvent(“Global\ngx_reload_7652“) failed (2: The system cannot find the file specif
  7. 【Unity3D】个人开发台球小游戏
  8. Educoder-练习-Java循环综合练习四之日历打印
  9. win10并排显示窗口怎么不能占据全屏
  10. 人人商城秒杀redis配置