Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
这个跳转为什么部分手机会报错呢??
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=content://com.android.contacts/contacts }
因为有些版本有些rom的android没有提供下载这个activity。或者系统里的那个应用出现问题
像这种使用ACTION隐式启动Activity的,最好在之前先判断是否有对应的Activity可以响应。
if (intent.resolveActivity(getPackageManager()) != null)
{
startActivityForResult(intent, PICK_CONTACT); }
甚至有些Intent会crash(其他帖子看到):startActivity(
new
Intent(android.provider.Settings.ACTION_WIFI_SETTINGS
这个问题有可能是直接写class名字,有可能不同版本名字不一样引起的问题
正确做法是,在跳转的时候不写死的Calss名,而是用的系统提供的Settings.ACTION_WIFI_SETTINGS,如果不同版本的Class名不一样,这里action对应的名字应该会变。
来源:oschina
链接:https://my.oschina.net/u/4412579/blog/4436861