2016-09-14 6 views
0

Im пытается поделиться изображением, кажется, работает только при подключении SD-карты или при отсутствии на нем слота для SD-карт. Но когда я демонтирую SD-карту, она не делится, и это дает мне две ошибки.Android Share Intent не работает

  • FATAL ИСКЛЮЧЕНИЕ: главный java.lang.NullPointerException: uriString

  • Не удалось не вставить java.io.FileNotFoundException изображения: Нет такого файла или каталога

И по какой-то причине также сохраняет изображение, которое является общим, не может понять, почему.

  private Button button; 

     public void onCreate { 

     init(); 
     setupView(); 
      } 

     public void setupView(){ 
     button.setOnClickListener(this); 
     } 



     public void init() { 
     button = (Button) findViewById(R.id.button); 
      } 




      @Override 
      public void onClick(View v) { 
      int id = v.getId(); 
      switch (id) { 
      case R.id.button: { 
       startShare(); 
       break; 
      } 




      public void startShare() { 
     Bitmap b =BitmapFactory.decodeResource(getResources(),R.drawable.m1); 
      Intent share = new Intent(Intent.ACTION_SEND); 
      share.setType("image/*"); 
      ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
      b.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
      String path = MediaStore.Images.Media.insertImage(getContentResolver(), 
      b, "Title", null); 
     Uri imageUri = Uri.parse(path); 
     share.putExtra(Intent.EXTRA_STREAM, imageUri); 
     startActivity(Intent.createChooser(share, "Share")); 
     } 
+0

Возможный дубликат [Что такое NullPointerException, и как это исправить?] (Http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – Ironman

+0

Нет, это не помогло, спасибо в любом случае. – sakura

+0

вы получаете 'Exception' здесь 'Bitmap b = BitmapFactory.decodeResource (getResources(), R.drawable.m1);' FileNotFoundException'. – Ironman

ответ

0

попробовать этот код для акций вытяжке изображения:

Uri imageUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + 
          getResources().getResourcePackageName(R.drawable.ic_launcher) + '/' + 
          getResources().getResourceTypeName(R.drawable.ic_launcher) + '/' + 
          getResources().getResourceEntryName(R.drawable.ic_launcher)); 

        Intent share = new Intent(Intent.ACTION_SEND); 
        share.setType("image/*"); 
        share.putExtra(Intent.EXTRA_STREAM, imageUri); 
        startActivity(Intent.createChooser(share, "Share")); 
+0

Я пробовал этот код, но он не работает, он говорит: «Вы не можете добавить это изображение в свое сообщение». – sakura

Смежные вопросы