Это мой код загрузки обоев, он работает только на Google Photo - PullRequest
0 голосов
/ 06 ноября 2019

Это мой код загрузки обоев. Работает только на Google Photo. Пожалуйста, дайте мне самый простой код для загрузки обоев одним щелчком мыши.

Как автоматически загрузить обои в галерею одним щелчком мыши?

private void downloadWallpaper(final Wallpaper wallpaper) {
                ((Activity) mCtx).findViewById(R.id.progressbar).setVisibility(View.VISIBLE);

                Glide.with(mCtx)
                        .asBitmap()
                        .load(wallpaper.url)
                        .into(new SimpleTarget<Bitmap>() {
                                  @Override
                                  public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
                                      ((Activity) mCtx).findViewById(R.id.progressbar).setVisibility(View.GONE);

                                      Intent intent = new Intent(Intent.ACTION_VIEW);

                                      Uri uri = saveWallpaperAndGetUri(resource, wallpaper.id);

                                      if (uri != null) {
                                          intent.setDataAndType(uri, "image/*");
                                          mCtx.startActivity(Intent.createChooser(intent, "Islamic Writes"));
                                      }
                                  }
                              }
                        );
            }




    private Uri saveWallpaperAndGetUri(Bitmap bitmap, String id) {
                if (ContextCompat.checkSelfPermission(mCtx, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
                        != PackageManager.PERMISSION_GRANTED) {

                    if (ActivityCompat
                            .shouldShowRequestPermissionRationale((Activity) mCtx, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

                        Intent intent = new Intent();
                        intent.setAction( Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

                        Uri uri = Uri.fromParts("package", mCtx.getPackageName(), null);
                        intent.setData(uri);

                        mCtx.startActivity(intent);

                    } else {
                        ActivityCompat.requestPermissions((Activity) mCtx, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
                    }
                    return null;
                }

     File folder = new File(Environment.getExternalStorageDirectory().toString() + "/Download");
                folder.mkdirs();

                File file = new File(folder, id + ".jpg");
                try {
                    FileOutputStream out = new FileOutputStream(file);
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
                    out.flush();
                    out.close();

                    Intent intent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE );
                    mCtx.sendBroadcast(intent);

                    return FileProvider.getUriForFile( mCtx, BuildConfig.APPLICATION_ID +".provider",file );
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }
...