我在過去的幾周(嚴重)在網上搜索,但我找不到我需要的。我只是想開始一個對應於設置爲行動的意圖。它通常提供設置爲壁紙或設置爲聯繫圖片。然後,如果設備上安裝了更多的應用程序,它們也可以列出。如何開始「設置爲」的意圖(壁紙,聯繫人圖片等)
這裏是我想要的一個例子:
我準確的,我需要支持API級別14及更高版本。 我發現getCropAndSetWallpaperIntent,但它只適用於內容URI這對我來說是一個問題,並且只適用於API lvl 19和更高版本。
我在過去的幾周(嚴重)在網上搜索,但我找不到我需要的。我只是想開始一個對應於設置爲行動的意圖。它通常提供設置爲壁紙或設置爲聯繫圖片。然後,如果設備上安裝了更多的應用程序,它們也可以列出。如何開始「設置爲」的意圖(壁紙,聯繫人圖片等)
這裏是我想要的一個例子:
我準確的,我需要支持API級別14及更高版本。 我發現getCropAndSetWallpaperIntent,但它只適用於內容URI這對我來說是一個問題,並且只適用於API lvl 19和更高版本。
我找到了答案由我自己:
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setDataAndType(imageUri, "image/*");
intent.putExtra("jpg", "image/*");
startActivityForResult(Intent.createChooser(intent,
getString(R.string.set_as)), REQUEST_ID_SET_AS_WALLPAPER);
你一定要確保URI是公開的,將是由用戶選擇的作物應用訪問。
它適用於設置與主屏幕選項的壁紙,但它不能很好地工作,同時設置鎖屏選項的壁紙。爲什麼? – 2015-09-19 05:59:35
鎖定屏幕壁紙不是Android股票的一部分。它通常由智能手機制造商添加。因此,我認爲製造商需要爲此目的添加鎖屏選項。可能有一個參數需要考慮到這一點,但我知道的沒有。 – Kalvn 2015-09-29 10:28:28
該解決方案爲我與烏里:
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setDataAndType(contentUri, "image/*");
intent.putExtra("mimeType", "image/*");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(
intent, "Set as:"));
這爲我工作:
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.addCategory(Intent.CATEGORY_DEFAULT);
//can't use normal URI, because it requires the Uri from file
intent.setDataAndType(Uri.fromFile(new File(uriOfImage)),"image/*");
intent.putExtra("mimeType","image/*");
startActivity(Intent.createChooser(intent,"Set Image"));
您可以檢查您傳遞的URI,應包含 '文件://'前綴(它不工作沒有)。
[android設置圖像作爲聯繫人圖標/壁紙]的可能的副本(http://stackoverflow.com/questions/7284142/android-set-image-as-contact-icon-wallpaper) – cygery 2014-10-30 21:50:34