Android開発用にChromeブックマークを変更する



Modify Chrome Bookmarks



Chrome APKはAndroidシステムにプリセットされています。これは、ソースコードのない単なるChromeAPKです。お客様は、SIMカードに応じてブックマークをどのようにカスタマイズする必要がありますか?
Chromeは、ブックマークを変更したいベンダーにPartnerBookmarksProviderapkを提供します。ユーザーはPartnerBookmarksProviderを変更して、Chromeにブックマークを追加できます。

原理:
Chromeのブックマークはbookmarks.dbから取得され、dbのデータベースはPartnerBookmarksProviderのxmlファイル内の文字列から取得されます。この原理により、上記のカスタマイズを実現することができます。
最初にPartnerBookmarksProvider res values strings.xmlを見つけます



<resources xmlns:xliff='urn:oasis:names:tc:xliff:document:1.2'> <string name='bookmarks_folder_name' translatable='false'>Partner Bookmarksstring> <string-array name='bookmarks'> string-array> <string-array name='bookmarks2'> <item>Book signature 1item> <item>http://www.sina.com.cnitem> <item>Book signature 2item> <item>http://baidu.comitem> string-array> resources>

その中で

<string-array name='bookmarks'> string-array>

配列は一連のブックマークを表し、上のものはブックマークがないことを表し、bookmarks2は2つのブックマークを表します。これらのブックマークは、データベースの読み取りコンテンツです。
次は、データベースにSIMカードに応じて異なるブックマークを読み取らせることです



public void ChangeBookmarkBySimcard(){ int mcc = getContext().getResources().getConfiguration().mcc int mnc = getContext().getResources().getConfiguration().mnc Log.v(TAG,'mcc'+mcc) Log.v(TAG,'mnc'+mnc) if (228 == mcc && 01 == mnc) { bookmarks_new = getContext().getResources().getTextArray(R.array.bookmarks2) } else { bookmarks_new = getContext().getResources().getTextArray(R.array.bookmarks) } for (int i = 0 i Log.v(TAG, 'query bookmarks new:' + bookmarks_new[i]) } final SQLiteDatabase db = mOpenHelper.getWritableDatabase() mOpenHelper.dropTable(db) mOpenHelper.createTable(db) mOpenHelper.createDefaultBookmarks(db) }

もちろん、ブックマークを置き換えるだけでは意味がありません。データベースを削除して、データベースとデータを再生成する必要があります。その後、適切なタイミングでメソッドを呼び出す必要があります。データベースにクエリを実行する前に呼び出します。

ソースコード:
http://download.csdn.net/download/u011109881/10150380