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账户邮箱签名无效。
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>
<?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 邮件签名客制化需求相关推荐
- android 7.0平台客制化虚拟导航按键(隐藏NavigationBar,上滑显示NavigationBar)
如图,需求是增加一个按钮可以隐藏NavigationBar,上滑显示NavigationBar. 参考文章: Android 8.1平台客制化虚拟导航按键 Android 7.0 虚拟按键(Navig ...
- Android 12.0 Launcher客制化指导手册
主要包含 Launcher3升级变化:小部件变化 . Go版本差异.支持自动生成Work文件夹 . UI客制化 :桌面布局 .布局配置 .预置图标 .图标客制化 .待机界面客制化.应用抽屉客制化 功能 ...
- Android 5.0 Launcher客制化定制之 主题包协议(MIUI主题、乐蛙主题兼容)
Android 5.0 Launcher客制化定制之 主题包协议(MIUI主题.乐蛙主题兼容) 春节更新
- Android 8.1平台客制化虚拟导航按键
文章目录 @[toc] 需求 运行截图 代码修改步骤 欢迎关注公众号,给你更多技术干货: 需求 基于MTK8163 8.1平台定制导航栏部分,在左边增加音量减,右边增加音量加 运行截图 代码修改步骤 ...
- SM30 标准程序 添加事件、checkbox 等客制化需求
接到一个需求,新建 一个add on 表,并且生成sm30的维护视图 .但是要在视图中,针对某些字段显示描述. 大致需求如下, 1 维护视图中,针对代理人 和 被代理人,是系统账号, 所以需要带出姓名 ...
- Android 手机按键客制化详解
在Android 中会有以下5个按键(Back.Home.Menu.Power.Volume)与用户进行交互,Framework 层中实现按键功能,因此,从手机系统定制的角度,可以满足客户的客制化要求 ...
- 手机应用商城的本质是实现手机的大规模客制化
一.首先,本文的前提观点是:同类产品匮乏让大规模更具价值,同类产品充裕让客制化更具价值 比如冰箱刚出的时候,市面上产品比较少,竞争对手也少,那么大规模生产可以有效地控制成本和质量,这样做对企业而言是比 ...
- Android实现客制化系统apk在线签名
目录 一.基线代码签名key 二.如何生成自定义的签名pk8 .x509.pem 签名文件 三.如何使用签名key对apk进行重新签名 四.大厂商为了安全,使用自定义签名方式,而不采用原生的签名方式 ...
- Android 11.0 充电指示灯红绿显示简单客制化
客制化充电指示灯的文章在网上也有不少了,项目的需求是在百分百情况下量绿灯,其它情况下都是红灯,这里简单记录下在Android11,kernel-4.19版本下的修改内容,也给有相关需求的各位提供下思路 ...
- Android 系统(251)---sec2.0和sec2.1新增分区DA客制化步骤
sec2.0和sec2.1新增分区DA客制化步骤 在sec2.0和sec2.1中,如果客户新增分区超过两个,又不想用DA中默认的sec policy,可以按如下方法进行配置. 以MT6739为例,增加 ...
最新文章
- junit集成Hamcrest测试集合中某个属性是否包含特定值
- 语音识别、传统语音识别、带权有限转态转换器、深度语音识别、时序分类、CTC解码
- 在特定索引处插入字符串
- WGS84经纬度坐标与WEB摩卡托坐标转换
- 当12C PDB遇上JDBC
- Fifth scrum meeting - 2015/10/30
- nls_lang.sh: 114: [[: not found
- Java的native方法java.lang.UnsatisfiedLinkError
- IBM最新调研表明:大数据等于大回报
- CentOS 7, apm+xcache, rpm包, php module
- matlab作函数图像,matlab绘制函数图像
- SU插件|TopoShaper生成地形 免费下载及介绍(SketchUp草图大师必备)!
- 微信H5禁止分享功能
- 微信公众号开发之使用eclipse创建微信web工程并发布到BAE测试
- 2020年书法落款_散文书法落款-2020年书法落款怎么写?
- 炫龙笔记本安装Ubantu系统
- iisnbsp;访问输入用户名和密码问题
- 2018年了,希望所有的程序员都能逃过这些梗……
- Unity获取NoloVR手柄
- 51单片机热敏打印自助排队叫号系统银行医院柜台DY-SV17F语音播报
热门文章
- 微信个性化菜单 java_微信公众平台开发(109) 个性化菜单
- Arthas线上问题定位神器
- 若干思考:从如何确定投资者是风险偏好者、风险中性者还是风险规避者 到 上学真的无用吗的思考?
- linux 利用缓存文件.swp恢复源文件
- 如何管理一个外包团队小总结
- nginx: [error] OpenEvent(“Global\ngx_reload_7652“) failed (2: The system cannot find the file specif
- 【Unity3D】个人开发台球小游戏
- Educoder-练习-Java循环综合练习四之日历打印
- win10并排显示窗口怎么不能占据全屏
- 人人商城秒杀redis配置