2012-03-07 25 views
3

我創建了一個應用程序,可以從手機上傳(三星Galaxy S2)圖片到我的服務器上,使用「共享通過」 ... <我的應用程序>在觀看圖像時Android圖庫。分享的Picasa圖片到我的Android應用

然而,我的應用程序不顯示在「共享通過」 - 菜單中的我有網上,圖片在Picasa中的替代品。我想知道如何能夠處理各種各樣的是,在畫廊中顯示的圖像 - 無論是本地存儲在手機/ SD卡上,並在Picasa中如遠程存儲?

現在我有意圖過濾MIME類型「image/*」,我想這與Picasa圖像不符,出於某種原因(?)。

從我的AndroidManifest.xml:

<activity 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:name=".PublishImageActivity" 
     android:theme="@style/Theme.Custom" > 
     <intent-filter > 
      <action android:name="android.intent.action.SEND" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:mimeType="image/*" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:name=".PublishImageActivity" 
     android:theme="@style/Theme.Custom" > 
     <intent-filter > 
      <action android:name="android.intent.action.CHOOSER" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:mimeType="image/*" /> 
     </intent-filter> 
    </activity> 

回答

2

有些掙扎後,並用出色的應用「意圖攔截」,我發現,Picasa的圖片的MIME類型爲「text/plain的」,他們有一個Intent.EXTRA_TEXT中的URL字符串。

所以我做了什麼來解決這個問題,是添加像上面這樣的intent過濾器,但是在Manifest中的「text/plain」

 <intent-filter > 
      <action android:name="android.intent.action.SEND" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:mimeType="text/plain" /> 
     </intent-filter> 

..和活動中,檢查是否爲Intent.EXTRA_TEXT值是捆綁在意圖 - 如果是這樣,得到它,檢查它是否是一個HTTP鏈接..如果是的話 - 請從圖像網址;

if (Intent.ACTION_SEND.equals(intent.getAction())) { 
     Bundle extras = intent.getExtras(); 
     if (extras.containsKey(Intent.EXTRA_TEXT)) { 
      Uri uri = Uri.parse((String) extras.getCharSequence(Intent.EXTRA_TEXT)); 
      if (uri != null) { 
       String scheme = uri.getScheme(); 
       if (scheme.equals("http")) { 
        downloadImage(uri); 
        // ... 

但是,我仍然好奇,如果有更好的方法來處理這個問題?感覺像我現在沒有任何保證,該網址真的指向一個圖像或一些其他頑皮的東西:-)

相關問題