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>