因为APN的配置文件改了,但是fota升级又没有升级成功,这个时候。应该使用下面的方法修改,这样就能升级fota了。
基本思路是 更新APN之后,重新加载数据库,具体方法如下
1.apns-conf.xml中的<apns version="8">改为<apns version="9">
2.frameworks/base/core/res/res/xml/apns.xml中的<apns version="8">改为<apns version="9">
3.在packages/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java的onUpgrade方法最后添加,
if(oldVersion < (16 << 16 | 9)){
log("onUpgrade for apn delete carriers table & initDatabase");
try {
db.execSQL("DELETE FROM " + CARRIERS_TABLE);
} catch (SQLiteException e) {
if (DBG) {
log("onUpgrade skipping " + CARRIERS_TABLE + " upgrade. " +
" The table will get created in onOpen.");
}
}
initDatabase(db);
}
只要升级后开机能走到“onUpgrade for apn delete carriers table & initDatabase” 就应该可以了。if判断条件请再看看怎么写,更合适。
修改:
在onUpgrade 方法添加下面的
if (oldVersion < (16 << 16 | 9)) {
log("need upgrade, oldVersion: " + oldVersion);
upgradeToVersion9(db);
}
增加函数
private void upgradeToVersion9(SQLiteDatabase db) {
log("upgradeToVersion9");
try {
db.delete(CARRIERS_TABLE, null, null);
} catch (SQLException e) {
loge("upgradeToVersion9 got exception when deleting: " + e);
}
initDatabase(db);
}