2012-06-15 2 views
0

это мой первый вопрос Я искал любые вопросы о запуске и не работал для меня (android 4.0.4), но работает для других.Запустить любую установленную деятельность

У меня уже есть список всех установленных активности в телефоне, но я не могу запустить их

ComponentName cm= new ComponentName("com.sonyericsson.extras.liveview","com.sonyericsson.extras.liveview.LAUNCH"); 
intent.setComponent(cm); 
startActivity(intent); 

этот код неисправного для меня «не смог найти явную активность ...», что постоянные строки могут изменяться в зависимости от выбора, каким-либо образом это не сработает, и другие решения не найдены здесь. Logcat говорит, что, может быть, я не объявлял активность в файле manifest.xml, но, конечно же, я этого не сделал, я хочу начать ЛЮБОЙ актив, как и запускает ADW, также пытался использовать код из источника ADW, но не работал , Заранее спасибо

+0

Нет проблем с кодом, если он работает на телефоне Sony Ericsson, но если вы попытаетесь запустить его на Motorola или телефоне HTC, вы можете столкнуться с проблемами вызова пакета. – Sana

+0

Спасибо, sara, но эта строка является постоянной к настоящему времени, но она должна меняться, так как она не работает на моем телефоне SE, активность установлена ​​ – aguilar8325

+0

Так что скажем, когда вы открываете активность LAUNCH, у нее есть пакет как com. sonyericsson.extras.liveview – Sana

ответ

0

Попробуйте

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setClassName("com.sonyericsson.extras.liveview", "com.sonyericsson.extras.liveview.LAUNCH"); 
startActivity(intent); 

Я считаю, что имя пакета в порядке, но имя активность быть все CAPS мне больно: |, но попробовать и дайте мне знать, если это сработает для вас.

+0

Большое спасибо! вот как я это сделал: 'намерение намерения = новое намерение (Intent.ACTION_VIEW); intent.setClassName (activinfos.get (position) .packageName, activinfos.get (position) .name); startActivity (намерение); ' – aguilar8325

1

Попробуйте использовать это вместо

String app = "com.sonyericsson.extras/liveview"; 
Intent intent = new Intent(Intent.ACTION_MAIN);    
intent.setComponent(ComponentName.unflattenFromString(app));    
intent.addCategory(Intent.CATEGORY_LAUNCHER);    
startActivity(intent); 
+0

Не повезло, logcat: android.content.ActivityNotFoundExceptio: Не удалось найти явный класс {com.sonyericsson.extras/liveview}; вы объявили активность в вашем AndroidManifest.xml? Мой манифест не имеет его, потому что он будет меняться, в будущих использованиях я буду использовать ActivityInfo только из вектора всех установленных действий, поэтому я получаю от него активность и пакеты. Я знаю, что это возможно, потому что каждое приложение для дома или запуска делает это. Код ADW кажется сложным – aguilar8325