2
public void onContacts(View v)
{
    Intent i=new Intent(Intent.ACTION_VIEW, ContactsContract.Contacts.CONTENT_URI);
    startActivity(i);
}

public void onBrowse(View v)
{

    String s1= et1.getText().toString();
    Intent i= new Intent(Intent.ACTION_VIEW, Uri.parse(s1));
    startActivity(i);

}

public void onSearch(View v)
{

    String s1= et2.getText().toString();
    Intent i=new Intent(Intent.ACTION_WEB_SEARCH);
    i.putExtra(SearchManager.QUERY, s1);
    startActivity(i);
}

public void onMap(View v)
{

    String s1= et3.getText().toString();
    Intent i=new Intent(Intent.ACTION_VIEW,Uri.parse("geo:0,0?q="+s1));
    startActivity(i);
}

这些是几个方法,每个方法都附加到相应的按钮,单击任何这些按钮时,它会显示,ActivityNotFoundException除了onContacts()未附加到任何编辑文本的方法...

日志猫结果

 05-27 23:18:42.984: E/AndroidRuntime(714): Caused by:    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=google }

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.AllIntent"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
<uses-permission android:name="android.permission.CALL_PHONE"/>   

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:label="@string/app_name"
        android:name=".AllIntentActivity" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

看看这是否有帮助..我已经运行了一个具有相同功能的程序,其中没有从他的edittext中检索到任何字符串,即在方法本身中提供了所需的资源

我正在谈论的源代码

public void onContents(View v)
{
    Intent i=new Intent(Intent.ACTION_VIEW,ContactsContract.Contacts.CONTENT_URI);
    startActivity(i);
}

public void onBrowser(View v)
{
    Intent i= new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
    startActivity(i);
}

public void onSearch(View v)
{
    Intent i=new Intent(Intent.ACTION_WEB_SEARCH);

    i.putExtra(SearchManager.QUERY, "tapu");
    startActivity(i);       
}

public void onMap(View v)
{
    Intent i=new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=hyderabad"));
    startActivity(i);
}

public void onCall(View v)
{
    Intent i=new Intent(Intent.ACTION_CALL,Uri.parse("tel:9776215312"));
    startActivity(i);
}
4

2 回答 2

2

我认为您的问题是没有用于处理 Intent.ACTION_VIEW 和 Intent.ACTION_WEB_SEARCH 操作的活动,要检查是否有用于处理您的意图的活动,您可以先检查一下:

PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;

如果 List Activity 中的 Activity 数量0,则表示目前没有 Activity 用于处理您的 Intent,在尝试启动 Activity 之前,您应该先检查一下。

编辑:我们知道这些操作对 android 设备(地图和网络浏览器)很常见,因此您应该检查您正在传递的 URI 是否正确。

于 2013-05-27T18:20:45.763 回答
1

您的意图 URI 错误。或者更确切地说,您的内容TextView不是以打开您期望的搜索对话框的方式构建的。例如,尝试输入:

google.com/search?q=blah

作为你的文字TextView

于 2013-05-27T18:37:24.397 回答