作者:贷款喝稀饭 | 来源:互联网 | 2023-09-24 19:04
1.部分营运商版本的固件,会定制chrome主页,实现:
提供一个authorities="com.android.partnerbrowsercustomizations"的ContentProvider即可。
可定义在固件中packages/providers/PartnerBookmarksProviderProvider里
AndroidManifest.xml申明:
android:authorities="com.android.partnerbrowsercustomizations" />
ChromHomepageProvider部分实现代码:
package com.android.providers.partnerbookmarks;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.provider.Settings;
import android.net.Uri;
import android.util.Log;
public class ChromHomepageProvider extends ContentProvider {
private static final String TAG = "PartnerHomepageProvider";
//home page
private static String HOMEPAGE_URI = "http://www.bing.com/";
private static final int URI_MATCH_HOMEPAGE = 0;
private static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
// DB table name
private static final String TABLE_HOMEPAGE = "homepage";
static {
final UriMatcher matcher = URI_MATCHER;
final String authority = "com.android.partnerbrowsercustomizations";
matcher.addURI(authority, "homepage", URI_MATCH_HOMEPAGE);
}
@Override
public boolean onCreate() {
Log.d(TAG, "---oncreate");
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
Log.d(TAG, "---query");
final int match = URI_MATCHER.match(uri);
switch (URI_MATCHER.match(uri)) {
case URI_MATCH_HOMEPAGE:
//1.此处可添加区分营运商的一些信息
MatrixCursor cursor = new MatrixCursor(new String[]{"homepage"}, 1);
cursor.addRow(new Object[]{HOMEPAGE_URI});
return cursor;
default:
return null;
}
}
@Override
public String getType(Uri uri) {
switch (URI_MATCHER.match(uri)) {
case URI_MATCH_HOMEPAGE:
return "vnd.android.cursor.item/partnerhomepage";
default:
return null;
}
}
@Override
public Uri insert(Uri uri, ContentValues values) {
throw new UnsupportedOperationException();
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
throw new UnsupportedOperationException();
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
throw new UnsupportedOperationException();
}
}
如果query函数中添加区分营运商信息的地方在初始化未设置正确(即返回的是null)然后打开了chrome,随后设置正确,Chrome只会显示主页按钮。清空chrome数据后可正常显示主页。