Ying Li
Ying Li

Reputation: 2519

Android Manifest Confusion

I noticed that there are two ways to start an Activity with Intent.

1) Using - [android:name=".MainActivity"]

Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

2) Using - [action android:name="com.example.MainActivity"] from the Intent_Filter

String actionName = "com.example.MainActivity";
Intent intent = new Intent();
intent.setAction(CUSTOM_ACTION);
context.startActivity(i);

So what's the difference? Why do we have to set both the name and the intent_filter in the manifest if they both do the same thing?

===---==

Second confusion I have is... Is there a way to use the "OK Google" voice-launch option to launch an Activity that's NOT shown in the app list? Basically actual App Launcher launches the "default homepage" of the app, whereas voice launch takes you to a specific Activity directly?

I suspect some combo of these might get it done:

<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />

Upvotes: 1

Views: 108

Answers (1)

S.M_Emamian
S.M_Emamian

Reputation: 17383

If your class is in your main package, you can use this way:

.YourClass 

or

com.example.YourClass

If your class isn't in your main package, you should use this way:

packagename.YourClass

Upvotes: 2

Related Questions