2016-06-22 12 views
0

Ich möchte das Bild und Text auf Twitter mit meiner App teilen. Ich benutze Fabric SDK und folge den Richtlinien auf ihrer offiziellen Website. Problem ist, dass mein Bild nicht im Telefonspeicher gespeichert ist und es ein URL-Link ist. Wenn ich diese URL übergebe, wird sie nicht wie der FB angezeigt.Twitter teilen mit Fabric SDK in Android

Unten habe ich den Tied-Code für jetzt gepostet.

private void shareViaTwitt() { 
     final String myUrlStr = "http://i.stack.imgur.com/2FCsj.png"; 
     URL url; 
     Uri uri = null; 
     try { 
      url = new URL(myUrlStr); 
      uri = Uri.parse(url.toURI().toString()); 
     } catch (MalformedURLException e1) { 
      e1.printStackTrace(); 
     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
     } 

      TweetComposer.Builder builder = new TweetComposer.Builder(getContext()) 
        .text("Hi this is Sample twitter sharing") 
        .image(uri); 
      builder.show(); 
    } 

Vielen Dank.

Antwort

0
 /*In their official site has said need put file type uri that stored in 
phone/SD storage. So Here I just save it and get that uri and then pass it to 
fabric builder.*/ 

    private void shareViaTwitt() { 
     final String myUrlStr = "http://i.stack.imgur.com/2FCsj.png"; 

          TweetComposer.Builder builder = null; 
        try { 

         Bitmap bm = getBitmapFromURL(myUrlStr); 
         Uri uri = getImageUri(getContext(), bm); 
         builder = new TweetComposer.Builder(getContext()) 
           .text("Sample Text") 
           .image(uri) 
           .url(new URL(""https://www.newurl.....)); 
         builder.show(); 
        } catch (MalformedURLException e) { 
         e.printStackTrace(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } catch (NullPointerException e) { 
         e.printStackTrace(); 
        } 
      } 

     public Uri getImageUri(Context inContext, Bitmap inImage) { 
       ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
       inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
       String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); 
       return Uri.parse(path); 
      } 

      public static Bitmap getBitmapFromURL(String src) { 
       try { 
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
          .permitAll().build(); 
        StrictMode.setThreadPolicy(policy); 
        URL url = new URL(src); 
        HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
        connection.setDoInput(true); 
        connection.connect(); 
        InputStream input = connection.getInputStream(); 
        Bitmap myBitmap = BitmapFactory.decodeStream(input); 
        return myBitmap; 
       } catch (IOException e) { 
        e.printStackTrace(); 
        return null; 
       } 
      } 
Verwandte Themen