任何人都能提供一个带有源代码的例子吗:
当我启动Intent时,Android会弹出一个"使用完成操作"对话框当有两个或多个应用程序在其清单中声明它们处理相同的意图时,
Android将显示该对话框。为了演示这种行为,您需要两个响应相同意图的示例应用程序——您只需找到一个简单的Hello World示例,克隆它并修改清单,为其中一个提供不同的名称,以及第三个调用startActivity()
的应用程序。
如果您希望将您的应用程序列为选项之一你需要做两件事。。。这是活动的代码
public class YourActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String value = getIntent().getStringExtra(Intent.EXTRA_TEXT);
}
}
然后你需要将其添加到你的AndroidManifest.xml 中
<activity android:name=".YourPageActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
如果你不想使用,可以在这里找到操作及其数据的完整列表。发送
http://developer.android.com/reference/android/content/Intent.html
您将希望在AndroidManifest.xml中使用常量值,因此例如ACTION_SEARCH将是"android.intent.ACTION.SEARCH"
如果您想从应用程序中调出选项列表
btnShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String value = txtLongUrl.getText().toString();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, value);
intent.setType("text/plain");
startActivity(intent);
}
}
有关工作示例,请参阅DBnly
如果您只想看到这个弹出窗口,请尝试执行一个有多个现有应用程序的操作来处理它。
例如,给自己发送一条包含电子邮件地址的短信。电子邮件地址将变成一个可以触摸的链接,默认选项将显示Complete action using
弹出窗口,提供Gmail
和Mail
。