如何创建一个Android图库应用程序

时间:2017-01-01 07:33:25

标签: android android-manifest android-gallery mobile-development

我创建了一个图库应用。它会打开图像和照片,但系统不会将其作为图库应用程序。任何人都可以帮助我将其设置为图库应用程序吗? 谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您应该使用Intents and Intents Filters

在上面的链接中,您应该阅读&#34;接收隐含意图&#34;

  

要宣传您的应用可以接收哪些隐式意图,请使用清单文件中的元素为每个应用组件声明一个或多个意图过滤器。每个intent过滤器根据intent的操作,数据和类别指定它接受的意图类型。仅当意图可以通过您的一个意图过滤器时,系统才会向您的应用程序组件提供隐式意图。

&#13;
&#13;
SELECT COUNT(*) FROM (SELECT table_1.id,table_1.field_1,table_2.field_2,...,table_n.field_n FROM <data set with many joints>);
&#13;
&#13;
&#13;

^上面的代码(取自文档)显示了当其他活动使用SEND意图时如何确保您的应用程序处于打开状态。

更改动作和mimeType以获得所需的隐藏(发送照片?,显示照片?等)。