您的位置:首页 > 移动开发 > Android开发

android学习(十) 从其他应用接收简单数据

2017-04-09 10:52 537 查看

更新你的Manifest

<activity android:name=".MainActivity" >
<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>
</activity>


关于此的相关内容android学习(七) 允许其他应用启动您的Activity

当另一个应用通过startActivity()构造一个Intent试图分享这些时,你的申请将被作为一个选择。如果用户选择了你的一样,相应的活动将在MainActivity开始。然后在你的代码和UI里适当处理内容。

处理传入的内容

调用getIntent()得到Intent,一旦你有了这个对象,你可以检查内容来决定下一步该怎么做。

private void handleIntent(){
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);
} else if(type.startsWith("image/*")){
handleSendImage(intent);
}
} else if(Intent.ACTION_SEND_MULTIPLE.equals(action)&&type!=null){
if (type.startsWith("image/")) {
handleSendMultipleImages(intent); // Handle multiple images being sent
}
} else {
//处理其他的Intent
}
}
//处理图片时尽量在单线程中
private void handleSendMultipleImages(Intent intent) {
ArrayList<Uri> imageUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
if (imageUris != null) {
}
}

private void handleSendImage(Intent intent) {
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (imageUri != null) {
}
}

private void handleSendText(Intent intent) {
String shareText = intent.getStringExtra(Intent.EXTRA_TEXT);
if(shareText!=null){
}
}


摘自android developer
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: