<activity android:name=".AnotherActivity">
<intent-filter >
<action android:name="android.intent.action.GET_CONTENT" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note1" />
</intent-filter>
</activity>
<activity android:name=".ThirdActivity">
<intent-filter >
<action android:name="android.intent.action.CHOOSER" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note2" />
</intent-filter>
</activity>`
Это мой AndroidManifest.xml в демоверсии проекта Android. Я использую ContentProvider для доставки запроса на другую деятельность. Способ доставки выглядит так:
private OnClickListener l = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(intent);
}
};
private Intent intent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(l);
intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("content://com.test/b"));
}
Мой вопрос заключается в том, как я различаю эти два вида деятельности при запуске.
Единственный способ, о котором я подумал, это сделать два актива с разными mimeTypes в AndroidManifest. И отправьте запрос, используя другой uri, и переопределите метод getType в провайдере, чтобы вернуть соответствующий mimetype для двух действий.