Android 启动自定义隐式意图
安装的两个活动在设备上分别具有以下清单文件: 第一个应用程序的活动在其清单中包含:- 哪里Android 启动自定义隐式意图,android,Android,安装的两个活动在设备上分别具有以下清单文件: 第一个应用程序的活动在其清单中包含:- 哪里 package=“com.example.tictactoe” 现在,我想使用以下代码从第三个应用程序启动其中一个活动: i=new Intent(); i.setAction("YOYO"); i.putExtra("KEY","HII..i am from third app"); startActivity(i); 但执行显示了一个错误:- 03-11 08:12:30.496: E/Androi
package=“com.example.tictactoe”
现在,我想使用以下代码从第三个应用程序启动其中一个活动:
i=new Intent();
i.setAction("YOYO");
i.putExtra("KEY","HII..i am from third app");
startActivity(i);
但执行显示了一个错误:-
03-11 08:12:30.496: E/AndroidRuntime(1744): FATAL EXCEPTION: main
03-11 08:12:30.496: E/AndroidRuntime(1744): android.content.ActivityNotFoundException:
No Activity found to handle Intent { act=ACTION_SEND (has extras) }
您需要提供完整的操作:
i=new Intent();
i.setAction("com.example.tictactoe.YOYO");
i.putExtra("KEY","HII..i am from third app");
startActivity(i);
或(取决于要启动的项目):
您也可以通过:(直接在构造函数中提供操作)
另外,请松开数据mimeType或阅读如何使用它。因为via putExtra不起作用。您需要提供完整的操作名称;通过调用setType()提供您在清单中使用的mimeType 舱单:
<intent-filter>
<action android:name="com.example.tictactoe.YOYO" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
首先,您需要确保intent的名称是完全限定的名称,并且intent过滤器中的包名称与触发intent的活动中的包名称相同。在本例中,“YOYO”应该是“com.example.tictactoe.YOYO”。您还应该删除mime类型,因为您没有在setData()中包含数据,在本例中,您使用的是捆绑包。因此,对于触发意图的活动,您应该: 活动射击意图 对于清单中接收活动的条目:您需要确保将类别设置为默认值并删除数据类型标记 活动接收意图
try Intent i=new Intent(“com.example.project.YOYO);//包含包startActivity(i);“现在,我想从第三个应用程序启动其中一个活动…”-哪一个?使用“YOYO”“作为目的的操作
是不够的-你必须使用你在
@Raghunandan中指定的确切名称,但它不起作用…@Squonk实际上,我希望生成一个隐含的意图,然后我希望上述活动能够在选择后做出响应,因为它们将通过intent-filter。Rvdk的答案应该有效。将包与活动类一起使用。您只使用了类名。请删除XML的数据属性,然后重试。感谢…尽管如此,但它仍然不起作用..:p您是否可以参考任何链接,其中应用程序会自动启动,以响应从其他应用程序生成的隐式意图。我们需要添加默认类别,以便隐含意图起作用。
i=new Intent();
i.setAction("com.example.tictactoe.YOYO");
i.putExtra("KEY","HII..i am from third app");
startActivity(i);
i.setAction("com.example.project.YOYO");
i=new Intent("com.example.tictactoe.YOYO");
i.putExtra("KEY","HII..i am from third app");
startActivity(i);
<intent-filter>
<action android:name="com.example.tictactoe.YOYO" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
Intent i=new Intent();
i.setAction("com.example.tictactoe.YOYO");
i.setType("text/plain");
i.putExtra("KEY","HI..i am from third app");
startActivity(i);
i=new Intent();
i.setAction("com.example.tictactoe.YOYO");
i.putExtra("KEY","HII..i am from third app");
startActivity(i);
<intent-filter>
<action android:name="com.example.tictactoe.YOYO" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>