Android Intent data fails and intent resolution returns ActivityNotFoundException
[Update:] i know the problem... but need help to resolve this. The issue is the CONTENT_URI is not mapping to the mimetype vnd.android.cursor.dir/vnd.example.manager.
i create the Intent with null, and in my intentfiter i have data segment. so i guess it is not matching. So when i pass null in data, everything is good and charming!!., But i need to pass the content_URI and translate it into mimeType. i have a getType but i guess it is not resolving correctly. Could someone please help me out.
[Original Post]
I'm trying to debug this section with intents in my application and i need help to proceed further.
I have the main activity and some button. On clicking the button, i would fire an intent for a different activity and upon StartActivity i get an ActivityNotFoundException.
My guess is due to the data mimeType that i have passed to the activity. My Intent filter is Below
<intent-filter>
<action android:name="android.intent.action.INSERT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/vnd.example.manager" />
</intent-filter>
This manager is initially empty and there is no table on the first launch of the a开发者_开发知识库ctivity.
In my Caller activity's onCreate() i do the following
Caller Activity - First entry point for the app
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dashboard);
someButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent spawnEmptyIntent = new Intent(Intent.ACTION_INSERT, getIntent().getData());
if(getIntent().getData() == null) {
getIntent().setData(ManagerTableDefaults.CONTENT_URI);
}
Log.w(TAG, "Intent data string is " + getIntent().getDataString()); --- This is null for some reason!! i don't know why!!... it should have been set earlier right??
startActivity(spawnEmptyListIntent); // New activity is not launched... Exception thrown
}
});
}
Error Log is
10-14 11:21:37.002: WARN/DashboardActivity(8313): Intent data string is null
10-14 11:21:37.012: INFO/ActivityManager(1643): Starting: Intent { act=android.intent.action.INSERT dat=content://com.example.android.provider.ss/manager } from pid 8313
10-14 11:21:37.022: ERROR/AndroidRuntime(8313): FATAL EXCEPTION: main
10-14 11:21:37.022: ERROR/AndroidRuntime(8313): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.INSERT dat=content://com.mvl.android.provider.nq/listmanager }
You aren't setting the data on your spawnEmptyListIntent
if getIntent().getData() is null. I suspect your intent is to set the ManagerTableDefaults.CONTENT_URI
as the data URI for your spawnEmptyListIntent
精彩评论