0

我已經創建了一個圖庫應用程序。它打開圖像和照片,但系統並沒有把它作爲一個畫廊的應用程序。任何人都可以幫我把它設置爲一個畫廊的應用程序? 謝謝!如何創建Android圖庫應用程序

+0

**系統是不是把它作爲一個畫廊的應用程序**手段? –

回答

0

您應該使用Intents and Intents Filters

在上面的鏈接,你應該閱讀有關「接受隱含意圖」

爲了宣傳其隱含的意圖你的應用程序可以接收申報每一個或多個意圖過濾器您的應用程序組件的元素在清單文件中。每個意圖過濾器根據意圖的動作,數據和類別來指定它接受的意向類型。只有當意圖可以通過您的意圖過濾器之一時,系統纔會向您的應用程序組件傳遞隱含意圖。

<activity android:name="ShareActivity"> 
 
    <intent-filter> 
 
     <action android:name="android.intent.action.SEND"/> 
 
     <category android:name="android.intent.category.DEFAULT"/> 
 
     <data android:mimeType="text/plain"/> 
 
    </intent-filter> 
 
</activity>

^上面的代碼(從文檔拍攝)展示瞭如何確保您的應用程序打開時,其他活動使用send意圖。

更改動作和mimeType以獲得您想要的保護(發送照片?,顯示照片?等)。

1

更新您的清單,這將告訴其他應用程序來接收內容

<activity android:name=".ui.MyActivity" > 
<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="text/plain" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.SEND_MULTIPLE" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 

處理傳入的內容。

void onCreate (Bundle savedInstanceState) { 

// Get intent, action and MIME type 
Intent intent = getIntent(); 
String action = intent.getAction(); 
String type = intent.getType(); 

if (Intent.ACTION_SEND.equals(action) && type != null) { 
    if ("text/plain".equals(type)) { 
     handleSendText(intent); // Handle text being sent 
    } else if (type.startsWith("image/")) { 
     handleSendImage(intent); // Handle single image being sent 
    } 
} else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null)  { 
    if (type.startsWith("image/")) { 
     handleSendMultipleImages(intent); 
// Handle multiple images being sent 
    } 
} else { 
    // Handle other intents, such as being started from the home screen 
} 

} 

void handleSendText(Intent intent) { 
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT); 
if (sharedText != null) { 
    // Update UI to reflect text being shared 
} 
} 

void handleSendImage(Intent intent) { 
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); 
if (imageUri != null) { 
    // Update UI to reflect image being shared 
} 
} 

void handleSendMultipleImages(Intent intent) { 
ArrayList<Uri> imageUris =    intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); 
if (imageUris != null) { 
    // Update UI to reflect multiple images being shared 
} 
} 

官方文檔: https://developer.android.com/training/sharing/receive.html

相關問題