我已经在这里发布了一个解决方法:https ://code.google.com/p/android/issues/detail?id=76026
所以,这里是涉及仪器的秘诀。
在侦听动作 com.example.action.VIEW 的工具中注册一个 BroadcastReceiver。
IntentFilter intentFilter = new IntentFilter("com.example.action.VIEW");
intentFilter.addDataScheme("myschema");
intentFilter.addCategory(Intent.CATEGORY_BROWSABLE);
Context.registerReceiver(new MyBroadcastReceiver(), intentFilter);
将 & 替换为 %26(使用可以将其替换为您想要的任何内容)并发送意图 com.example.action.VIEW。
收到意图后,BroadcastReceiver 会将 %26 转换回 & 符号,并向您的应用发送具有所需操作的新意图。
public final void onReceive(final Context context, final Intent intent) {
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(intent.getDataString().replaceAll("%26", "&")));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
基本上它充当 BroadcastReceiver 代理。