我创建了一个画廊应用程序。它会打开图像和照片,但系统不会将其作为图库应用程序。谁能帮我把它设置为画廊应用程序?谢谢!
问问题
1089 次
2 回答
2
更新您的清单,这将告诉其他应用程序接收内容
<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
于 2017-01-01T08:30:06.617 回答
0
你应该使用意图和意图过滤器
在上面的链接中,您应该阅读“接收隐含意图”
要宣传您的应用可以接收哪些隐式 Intent,请使用清单文件中的一个元素为您的每个应用组件声明一个或多个 Intent 过滤器。每个意图过滤器根据意图的操作、数据和类别指定其接受的意图类型。仅当意图可以通过您的意图过滤器之一时,系统才会向您的应用程序组件提供隐式意图。
<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 以获得您想要的结果(发送照片?显示照片?等)。
于 2017-01-01T08:02:26.257 回答