2016-03-09 5 views
0

Я делюсь имидж из социальной сети и поймаю его с моим приложением (после этого link), но он поймает простой текст вместо изображения, я пытаюсь разобрать uri и url, но это не было t tПолучите простой текст вместо изображения

void handleSendText(Intent intent) { 
    String sharedText2 = intent.getStringExtra(Intent.EXTRA_TEXT); 
    //Bn1.setText("Descargar Texto plano"); 
    if (sharedText2 != null) { // check if is null or not 
     File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Imgs/"); 
     if(!folder.exists()){folder.mkdir();}// create folder 
     int diagonal = sharedText2.indexOf(":"); 
     String sharedText = sharedText2.substring(diagonal + 1, sharedText2.length()); 
     sharedText = sharedText.replace(" ", ""); 
     if (!sharedText.startsWith("htt")) {// check if it's starts with http or not 
      sharedText = "https" + sharedText.substring(0, sharedText.indexOf("?")); 
     } 
     c = 1; 
     Bitmap bitmap = null; 
     Uri imageUri = Uri.parse(sharedText); // parse to uri 
     Time now = new Time(); // time 
     now.setToNow(); 
     String nombre = "Imagen-" + now.weekDay + "-" + now.month + "-" + now.year + "-" + now.minute + "_" + now.second;// name of the image 
     if (imageUri != null) { 
      try { 
       bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      File file = null; 
      file = new File(folder.getAbsoluteFile(), nombre + ".jpg"); 
      try { 
       FileOutputStream out = new FileOutputStream(file); 
       bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 
       //bitmap.compress(Bitmap.CompressFormat.WEBP, 90, out); 
       out.flush(); 
       out.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      Tv1.setMovementMethod(new ScrollingMovementMethod()); 
      Tv1.setText("Es una imagen\n" + imageUri + "\n" + file + "\nnombre:\n" + nombre); // show the name of the variables 
      if (bitmap == null) { 
       Tv1.setText(sharedText2 + "\n\nsharedtext\n" + sharedText); 
      } else { 
       Tv1.setText("SI quedo\n" + sharedText); 
      } 
     } 
    } 
} 

ответ

1

EXTRA_TEXT Предполагается, что текст является простым текстом. EXTRA_STREAM, с другой стороны, должен быть content:Uri (хотя часто вы получаете вместо этого file:Uri). Предположительно, запрашиваемая вами информация будет находиться в EXTRA_STREAM, а не EXTRA_TEXT.

+0

Я заменил его на EXTRA_STREAM вместо EXTRA_TEXT и вернул мне нуль –

+0

@CarlosCarrizales: Сбросьте полное содержимое «Intent» и посмотрите, что делает другое приложение. – CommonsWare

+0

Я не могу, это приложение в социальной сети, это не мое. –

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