Intent.ACTION_ATTACH_DATA を使用して画像を壁紙として設定する方法に関するサンプル コードはたくさんありますが、新しい Google フォト アプリではどれも機能しません。
私は通知からこれをやろうとしています。ユーザーが画像をギャラリーに保存すると、画像が保存されると通知が表示され、ユーザーが通知の「設定」アクションをクリックすると、「設定」ウィンドウが表示されます。
画像を壁紙として設定する実際の部分を除いて、これはすべて機能しています。
インテントを開始するたびに、通常のオプションのリストが表示されます。
Google フォトの「壁紙」オプションを選択すると、次のようなトリミング ウィンドウが表示されます。
これは「壁紙として設定」ウィンドウではなく、ギャラリーに保存したばかりの写真を変更するだけです。
「ホーム画面」、「ロック画面」、「ホームとロック画面」などの他のオプションはすべて機能しますが、解像度が低くなります。
私は何が欠けていますか?
これは私のコードです(私の画像タイプはpngです)
//Set as Intent
Intent setAsIntent = new Intent(Intent.ACTION_ATTACH_DATA);
setAsIntent.setDataAndType(uri, "image/*");
//PendingIntent to be used with the notification
PendingIntent setAsPendingIntent =
PendingIntent.getActivity(
getContext(),
1,
Intent.createChooser(setAsIntent, "Set as: "),
PendingIntent.FLAG_UPDATE_CURRENT
);