MTK开机向导完成后直接跳转到默认网页
2015-06-19 10:34
155 查看
KK版本的:之前有个客户要在开机向导完成之后直接跳转到默认的网页去,下面是修改方法,有的是有弊端的,会引起别的bug,最后是最终的解决方案,不过有些麻烦。
1.直接在MTK的开机向导OOBE完成后,点击finish按钮的时候跳转到网页上去(用百度举例):
mediatek\packages\apps\OOBE\src\com\mediatek\oobe\advanced\AdvanceSettingsEntrance.java
就这么几句就ok,但是这种方法有时会直接进入Launcher界面,不会到默认网页上
2.下边解决到网页上的方法:
packages\apps\Browser\src\com\android\browser\BrowserActivity.java
3.如果系统里边有多个浏览器,要默认一个:
将步骤1中的startActivity(it)之前的三句替换掉:
这样改,又有新问题出现,烧完版本第一次开机或者恢复出厂设置后开机横屏状态下预置的apk快捷方式可能会消失
4.修改apk快捷方式丢失的方法
packages\apps\Launcher3\AndroidManifest.xml
去掉相同的一句:
5.修改跳转到网页的最终方法(去掉OOBE里修改的内容,直接改framework和Launcher)
frameworks\base\packages\SettingsProvider\res\values\defaults.xml 添加一句
1.直接在MTK的开机向导OOBE完成后,点击finish按钮的时候跳转到网页上去(用百度举例):
mediatek\packages\apps\OOBE\src\com\mediatek\oobe\advanced\AdvanceSettingsEntrance.java
import android.net.Uri; 在 public void onClick(View v)下: if (v == mNextButton){ Intent it = new Intent (Intent.ACTION_VIEW); it.setData(Uri.parse("http://www.baidu.com")); it=Intent.createChooser(it,null); startActivity(it); finish... }else if...
就这么几句就ok,但是这种方法有时会直接进入Launcher界面,不会到默认网页上
2.下边解决到网页上的方法:
packages\apps\Browser\src\com\android\browser\BrowserActivity.java
private boolean shouldIgnoreIntents() { return false; }加上return false;就会启动浏览器
3.如果系统里边有多个浏览器,要默认一个:
将步骤1中的startActivity(it)之前的三句替换掉:
Uri uri = Uri.parse("http://www.baidu.com"); Intent it = new Intent (Intent.ACTION_VIEW.uri); it.setClassName("com.android.browser";"com.android.browser.BrowserActivity"); //系统默认的浏览器,要用别的浏览器,替换包名和类名就可以
这样改,又有新问题出现,烧完版本第一次开机或者恢复出厂设置后开机横屏状态下预置的apk快捷方式可能会消失
4.修改apk快捷方式丢失的方法
packages\apps\Launcher3\AndroidManifest.xml
去掉相同的一句:
android:screenOrientation="nosensor"packages\apps\Launcher3\src\com\android\launcher3\LauncherModel.java
private boolean loadWorkspace() { ...... // Check if we need to do any upgrade-path logic // boolean loadedOldDb = LauncherAppState.getLauncherProvider().justLoadedOldDb(); //注释掉此句 boolean loadedOldDb = false; //改为false } loadedOldDb = LauncherAppState.getLauncherProvider().justLoadedOldDb(); //添加这一句就好,下边的是源码 if (loadedOldDb) { long maxScreenId = 0; // If we're importing we use the old screen order. for (ItemInfo item: sBgItemsIdMap.values()) {...最后一个问题,这个改完后新的bug是横竖屏切换的时候,Launcher界面的右侧会出现一道黑条,所以上边的方法可以完全忽略,只跟着下边方法改
5.修改跳转到网页的最终方法(去掉OOBE里修改的内容,直接改framework和Launcher)
frameworks\base\packages\SettingsProvider\res\values\defaults.xml 添加一句
<integer name="def_start_url" translatable="false">1</integer>frameworks\base\api\current.txt 添加一句
field public static final java.lang.String START_URI = "start_uri";frameworks\base\core\java\android\provider\Settings.java 添加两处
public static final String SCREEN_OFF_TIMEOUT = "screen_off_timeout"; public static final String START_URI = "start_uri"; //添加此句 public static final String[] SETTINGS_TO_BACKUP = { ... START_URI //添加此句 };frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java 添加一处
private void loadSystemSettings(SQLiteDatabase db) { SQLiteStatement stmt = null; try { ... loadIntegerSetting(stmt, Settings.System.POINTER_DOUBLE_CLICK_SPEED, R.integer.def_double_click_speed); //此处添加下句 loadIntegerSetting(stmt, Settings.System.START_URI, R.integer.def_start_url); }finally ...packages\apps\Launcher3\AndroidManifest.xml 添加一处
<uses-permission android:name="android.permission.WRITE_SETTINGS" />packages\apps\Launcher3\src\com\android\launcher3\Launcher.java 添加一处
protected void onResume() { ... mWorkspace.updateInteractionForState(); mWorkspace.onResume(); //此处添加 if(isFirstLoadUri()){ Uri uri = Uri.parse("http://www.baidu.com"); Intent it =new Intent(Intent.ACTION_VIEW,uri); it.setClassName("com.android.browser","com.android.browser.BrowserActivity"); startActivity(it); Settings.System.putInt( getContentResolver(), Settings.System.START_URI,0); } //添加结束 } //再添加 private boolean isFirstLoadUri(){ return false; return (Settings.System.getInt(getContentResolver(), Settings.System.START_URI,0)) > 0; }综上所述,前边4条都没什么用,只是失败的过程,结果在最后一条。以上的失败都是学习积累经验的过程。由此看出,改一个问题得全面考虑,否则隐藏的bug也是一种隐患。
相关文章推荐
- 使用export/import导出和导入docker容器
- Android GPS学习笔记—重要结构体及接口
- rtmp流转Hls流 与 flv转mpegts
- 在重绘了背景的对话框上用双缓冲绘图的方式绘制picture控件时出现的问题
- HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头
- [数学故事]不说话的学术报告
- MultiThread
- PHP学习之[第05讲]PHP5.4 循环结构、系统函数和自定义函数
- MVC 特殊字符的显示
- ibaits---remapResults属性
- 整数问题及位运算的一些总结
- 最简单的小型铺砖问题
- Unix环境之文件和目录
- 如何修改opencms数据库配置
- x-www-form-urlencoded与multipart/form-data区别
- ubuntu拨号连接网络
- 黑马程序员--异常处理
- lua学习1
- 如何修改opencms数据库配置
- MultiThread