テレビ用のアプリを作成していて、おすすめカードが選択されたときにホーム画面の背景画像を変更しようとしています。
画像がコンテンツ プロバイダーでローカルに読み込まれるコード サンプルを見つけました。
public static class RecommendationBackgroundContentProvider extends ContentProvider {
@Override
public boolean onCreate() {
return true;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder) {
return null;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
return 0;
}
@Override
/*
* content provider serving files that are saved locally when recommendations are built
*/
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
Log.i(TAG, "openFile");
int backgroundId = Integer.parseInt(uri.getLastPathSegment());
File bitmapFile = getNotificationBackground(getContext(), backgroundId);
return ParcelFileDescriptor.open(bitmapFile, ParcelFileDescriptor.MODE_READ_ONLY);
}
}
これに関する問題は、ファイルをローカルではなく URL からロードする必要があることです。Notification.Builder
クラスには他に役立つメソッドはありません。背景画像として URL からビットマップを読み込むには何を使用すればよいですか?