任何人都可以提供一个带有源代码的示例:
“当我启动一个 Intent 时,Android 会弹出一个“使用完成操作”对话框。”
当有两个或多个应用程序在其清单中声明它们处理相同的意图时,Android 将显示该对话框。为了演示此行为,您需要两个响应相同意图的示例应用程序 - 您可以找到一个简单的 Hello World 示例,克隆它并修改清单以赋予其中一个不同的名称,第三个应用程序调用startActivity()
出于同样的目的。
如果您希望将您的应用列为选项之一...您需要做两件事...这是 Activity 的代码
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>
如果您不想使用 .SEND,可以在此处找到完整的操作列表及其数据
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);
}
}
有关工作示例,请参见DBitly
如果您只想查看此弹出窗口,请尝试执行一个具有多个现有应用程序来处理它的操作。
例如,给自己发送一条包含电子邮件地址的短信。电子邮件地址将变成您可以触摸的链接,默认选项将使Complete action using
弹出窗口出现,提供Gmail
和Mail
。