Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Launching custom implicit intent

Tags:

android

Two activities are installed having the following manifest files on device respectively:

The First app's activity has in its manifest:- where, package="com.example.tictactoe"

<intent-filter>
        <action android:name="com.example.tictactoe.YOYO" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/*" /> 
 </intent-filter>

The second app's activity has in its manifest:- where,
package="com.example.project"

 <intent-filter>
        <action android:name="com.example.project.YOYO" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/*" /> 
 </intent-filter>

Now, i want to start one of these activity from third application using the following code:

i=new Intent();
i.setAction("YOYO");
i.putExtra("KEY","HII..i am from third app");
startActivity(i);

But execution shows an error:-

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) }
like image 566
Rahul Rastogi Avatar asked Jan 14 '23 23:01

Rahul Rastogi


1 Answers

You need to supply the full action name; supply the mimeType you used in manifest by calling setType() in your intent.

Manifest :

<intent-filter>
     <action android:name="com.example.tictactoe.YOYO" />
     <category android:name="android.intent.category.DEFAULT" />
     <data android:mimeType="text/plain" /> 
</intent-filter>

Java :

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);
like image 137
JoVer M Avatar answered Jan 21 '23 15:01

JoVer M