当前位置: 首页 > news >正文

修改sim卡号码 android,android 如何动态修改SIM卡应用名称 MT6572 MT6589

两种方法:

方法1:

packages\apps\launcher2\src\com\android\launcher2\PagedViewIcon.java

1:6575、6573、6577平台:

将applyFromApplicationInfo()方法中的setText,通过packageName来过滤,设置期望显示的名字。

例如:packageName

=“com.android.stk2”,期望显示的名字"我的名字"

if

(packageName等于info.componentName.mPackage)

{

setText("http://blog.sina.com.cn/mtkshanghai")

}

else

{

setText(info.title);

}

2:6589和6572平台:两个stk应用程序是共用一个packageName的,所以无法通过包名来区分,必须通过类名来区分。例如插入卡槽2的sim或usim应用程序是通过启动"stkLauncherActivityⅡ"

将applyFromApplicationInfo()方法中的setText,通过TargetclassName来过滤,设置期望显示的名字。

例如:TargetclassName

=“stkLauncherActivityⅡ”,期望显示的名字"我的名字"

if

(TargetclassName等于info.componentName.mClass)

{

setText("http://blog.sina.com.cn/mtkshanghai")

}

else

{

setText(info.title);

}

修改应用程序的快捷方式名称:

packages\apps\launcher2\src\com\android\launcher2\iconCache.java

具体修改:

将cacheLocked()方法中,通过特殊判断将要显示的名字赋值给entry.title。

同理这里也要区分上面两种情况。

注意:6572对应的版本是JB3, 6589对应的版本:JB2

下面以将STK app name动态修改成运营商名称为例子。

1:运营商的名称是存储在:

卡1: TelephonyProperties.PROPERTY_OPERATOR_ALPHA

卡2: TelephonyProperties.PROPERTY_OPERATOR_ALPHA_2

2:使用运营商名字来动态修改package对应的app name(应用程序名字)

2.1: GB2版本:

修改文件:ContextImpl.java

import

android.os.SystemProperties;

import

com.android.internal.telephony.TelephonyProperties;

@Override

public

CharSequence getText(String packageName, int

resid,

ApplicationInfo

appInfo) {

ResourceName

name = new ResourceName(packageName, resid);

CharSequence

text = getCachedString(name);

if

(text != null) {

//add

start

if(packageName.equalsIgnoreCase("com.android.stk"))

{

Log.d("jby","packagemanager1,stkpackageName1:"+packageName);

String

tmptext=SystemProperties.get(TelephonyProperties.PROPERTY_OPERATOR_ALPHA);

if(!tmptext.isEmpty())

if(!tmptext.equalsIgnoreCase("com.android.stk"))

text=tmptext;

}

else

if(packageName.equalsIgnoreCase("com.android.stk2"))

{

Log.d("jby","packagemanager1,stkpackageName2:"+packageName);

String

tmptext=SystemProperties.get(TelephonyProperties.PROPERTY_OPERATOR_ALPHA_2);

if(!tmptext.isEmpty())

if(!tmptext.equalsIgnoreCase("com.android.stk2"))

text=tmptext;

}

Log.d("jby","text="+text);

//add

end

return

text;

}

if

(appInfo == null) {

try

{

appInfo

= getApplicationInfo(packageName, 0);

}

catch (NameNotFoundException e) {

return

null;

}

}

try

{

Resources

r = getResourcesForApplication(appInfo);

text

= r.getText(resid);

putCachedString(name,

text);

//add

start

if(packageName.equalsIgnoreCase("com.android.stk"))

{

Log.d("jby","packagemanager1,stkpackageName1:"+packageName);

String

tmptext=SystemProperties.get(TelephonyProperties.PROPERTY_OPERATOR_ALPHA);

if(!tmptext.isEmpty())

if(!tmptext.equalsIgnoreCase("com.android.stk"))

text=tmptext;

}

else

if(packageName.equalsIgnoreCase("com.android.stk2"))

{

Log.d("jby","packagemanager2,stkpackageName2:"+packageName);

String

tmptext=SystemProperties.get(TelephonyProperties.PROPERTY_OPERATOR_ALPHA_2);

if(!tmptext.isEmpty())

if(!tmptext.equalsIgnoreCase("com.android.stk2"))

text=tmptext;

}

Log.d("jby","text="+text);

//add

end

return

text;

}

catch (NameNotFoundException e) {

Log.w("PackageManager",

"Failure retrieving resources for"

+

appInfo.packageName);

}

catch (RuntimeException e) {

//

If an exception was thrown, fall through to

return

//

default icon.

Log.w("PackageManager",

"Failure retrieving text 0x"

+

Integer.toHexString(resid) + " in package "

+

packageName, e);

}

return

null;

}

2.2: 同理,JB、JB2、JB3和ICS、ICS2版本:

修改文件:ApplicationPackageManagerl.java

具体修改:参考上述的GB2版本修改,基本一样。

拓展需求:STK app name动态修改成Setup menu的title

1.在TelephonyProperties.java中为两个卡定义存放title的string:

static final String PROPERTY_STKAPP_NAME =

“gsm.stkapp.name”;

static final String PROPERTY_STKAPP_NAME_2 =

“gsm.stkapp.name2”;

2.当SETUP MENU上报时保存title.

在GB版本中的stkService.java或JB、ICS2版本的catService.java中作如下修改:

private void

handleProactiveCommand(CommandParams cmdParams){

……

switch(cmdParams.getCommandType()){

case

SET_UP_MENU:

if(removeMenu(cmdMsg.getMenu())){

mMenuCmd

= null;

}else{

mMenuCmd

= cmdMsg;

//Added

start

If(GEMINI_SIM_1

== simId){

SystemProperties.set(“gsm.stkapp.name”,mMenuCmd.mMenu.title);

}else{

SystemProperties.set(“gsm.stkapp.name2”,

mMenuCmd.mMenu.title);

}

//Endhttp://blog.sina.com.cn/mtkshanghai

}

}

}

注意:SystemProperties.set异步的。且设置属性命名是规范的,具体可参考如下:

3: 同理,使用上述SystemProperties.get(“gsm.stkapp.name”)获取SETUP MENU上报时保存title,并用来动态修改package对应的app name(应用程序名字)

相关文章:

  • android studio sqliteopenhelper,android studio使用SQLiteOpenHelper()建立数据库的方法
  • 一加5android 系统耗电,一加5评测:可能是今年最好的Android旗舰
  • 在线html代码生成器,支持网页快速排版 CSS代码一键生成的在线设计工具
  • html文件如何放置web站点,如何使用Go Web服务器提供静态html文件?
  • asp.net mv4 controller 跳转 静态html,Asp.Net MVC系列--进阶篇之controller(1)
  • html星星连线特效代码,js实现飞入星星特效代码
  • html生成jsessionid,H5 APP 使用 JSESSIONID 保持会话登录
  • web项目html访问不了,JBoss7部署web工程,无法访问到html文件,但是jsp都可以正常访...
  • html中的div的,html – div中的div
  • html背景图去重,Python Django开发 经验技巧总结(二)
  • 把html代码渲染成pdf,将HTML渲染为PDF文件
  • 学计算机做近视眼手术,做完近视眼手术后多久可以看电脑
  • 运用计算机在课堂上的好处,CAI在计算机教育中的重要性
  • html session 表单,HTTP的几种认证方式之FormBase 认证(基于表单认证)
  • 建模学什么计算机语言实用,这么详细的数学建模编程语言教程,确定不收藏吗?(一)...
  • ----------
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《剑指offer》分解让复杂问题更简单
  • 10个确保微服务与容器安全的最佳实践
  • axios 和 cookie 的那些事
  • java概述
  • Spring-boot 启动时碰到的错误
  • SQLServer之索引简介
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Vue ES6 Jade Scss Webpack Gulp
  • vue脚手架vue-cli
  • 阿里云购买磁盘后挂载
  • 测试开发系类之接口自动化测试
  • 码农张的Bug人生 - 初来乍到
  • 区块链将重新定义世界
  • 为什么要用IPython/Jupyter?
  • 小而合理的前端理论:rscss和rsjs
  • 一个项目push到多个远程Git仓库
  • puppet连载22:define用法
  • zabbix3.2监控linux磁盘IO
  • ​queue --- 一个同步的队列类​
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (8)STL算法之替换
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)JAVA中的堆栈
  • *** 2003
  • .NET : 在VS2008中计算代码度量值
  • .Net 8.0 新的变化
  • .Net Core与存储过程(一)
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .Net中的设计模式——Factory Method模式
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [Android]Android开发入门之HelloWorld