2016-06-22 8 views
0

私のアプリケーションを使用してTwitterで画像とテキストを共有したいです。私はユーザーFabric SDKを使用し、公式サイトのガイドラインに従ってください。問題は私のイメージが電話機のストレージとそのURLリンクに保存されていないことです。そのURLを渡すと、FB共有のように表示されません。アンドロイドのFabric SDKを使用したTwitter共有

以下は、今のところTriedコードを掲載しています。

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(); 
    } 

ありがとうございます。

答えて

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; 
       } 
      } 
関連する問題