2017-01-24 3 views
0

Я хочу установить изображение Посмотреть в качестве обоев или изображения контакта. мне нужно открыть «Chooser» для пользователя, и я использую этот код:показать намерение Установить в качестве обоев или Установить как картинку контакта

Uri uri = Uri.parse("android.resource://"+ this.getPackageName()+"/drawable/" +name+"jpg"); 
    Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); 
    intent.addCategory(Intent.CATEGORY_DEFAULT); 
    intent.setDataAndType(uri, "image/jpeg"); 
    intent.putExtra("mimeType", "image/jpeg"); 
    this.startActivity(Intent.createChooser(intent, "Set as:")); 

Это приводит следующее сообщение: «ни одно приложение не может выполнить это действие.»

ответ

0

Большинство приложений не распознает изображения «jpeg» в наши дни. Я рекомендую вам искать приложения с каждым форматом изображения. Используйте код ниже:

Uri uri = Uri.parse("android.resource://"+ this.getPackageName()+"/drawable/" +name+"jpg"); 
    Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); 
    intent.addCategory(Intent.CATEGORY_DEFAULT); 
    intent.setDataAndType(uri, "image/*"); 
    intent.putExtra("mimeType", "image/*"); 
    this.startActivity(Intent.createChooser(intent, "Set as:")); 
+0

спасибо за ваш ответ, я использую «изображение/*», но не работает и получить ни одно приложение не может выполнить это действие. –

+0

На каком устройстве вы тестируете? Вы уверены, что у этого устройства есть приложения, способные справиться с этим намерением? –

+0

Я запускаю приложение на 3 устройства, Samsung Galaxy s6, huawi honor 3c и genymotion! –

1
use this code : 

    Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER); 
    startActivity(Intent.createChooser(intent, "Select Wallpaper")); 
    You can create an item in contextMenu as Set as wallpaper in your app and when the user taps that item, you use this code. 

    Call this method for setting the selected image as Wallpaper: 

    public void setWallpaper() { 

      Context context = this.getBaseContext(); 
      Bitmap mBitmap = BitmapFactory.decodeResource(getResources(),mImageIds[pos]); 
      context.setWallpaper(mBitmap); 
    } 
    And add this permission in Android Manifest file: 

     <uses-permission android:name="android.permission.SET_WALLPAPER" /> 
Смежные вопросы