Android玩乐系列:修改汇编代码支持原生高清来电大头贴(三)
【
本文分三篇。本篇介绍更复杂的定制过程。
】
(接下来进一步细化上一篇的修改,前六节请参见:http://blog.csdn.net/aimingoo/article/details/7939116)
7、一些遗留问题的修改
=======
上面是最简版本,只是为了突出核心功能的实现,但实际留下的问题还是不少的。下面一一道来。
1) 呀。是成功了呢,不过一会儿就被改回来了。
---------
[修改, 2012.09.04。方法名写错的,应该是updateInCallBackground(),而不是updateScreen()]
这并不是普遍性的问题,有些拔号面板是有背景的,有些则是背景透明而直接显示桌面的。对于有背景的拔号面板,Phone.apk通常会在InCallScreen.smali中有一个updateInCallBackground()方法,找到它的几处调用,注释掉即可。或者干脆把updateInCallBackground()改成空函数就好了。
如果找不到updateInCallBackground()函数,则尝试找一个setBackgroundResource()这个方法,看哪里重绘了mMainFrame的背景即可。
2) 下一次电话呼入的时候,会残留上一个电话使用的大头贴
---------
是的。这应该在此次电话结束时清理掉。这很简单,修改InCallScreen.smali,找到
##---------## 注释掉下面的代码,使打开图片选取时显示一个“自由的”截图框## - .line xxx这样的代码可能与具体的反编译有关,不必在意。##---------## .line 406## const-string v12, "outputX"#### const/16 v13, 0x100#### invoke-virtual {v8, v12, v13}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;#### .line 407## const-string v12, "outputY"#### const/16 v13, 0x100#### invoke-virtual {v8, v12, v13}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;#### .line 408## const-string v12, "aspectX"#### const/4 v13, 0x1#### invoke-virtual {v8, v12, v13}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;#### .line 409## const-string v12, "aspectY"#### const/4 v13, 0x1#### invoke-virtual {v8, v12, v13}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;