2014-01-06 5 views
0

Я пытаюсь запустить другое приложение из своего приложения, в частности, приложение для удаленных стримеров splashtop. Вот то, что я до сих пор:Запуск внешнего приложения

string packageName = "com.splashtop.remote.FirstActivity"; 
Intent splash = new Intent(); 
splash.SetAction(packageName); 
StartActivity(splash); 

И в моем Android Manifest:

<activity android:name="com.splashtop.remote.FirstActivity" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="com.splashtop.remote.FirstActivity" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

И я получаю эту ошибку в выходных данных приложения и приложения forcecloses:

Didn't find class "com.splashtop.remote.FirstActivity" on path: /data/app/roughapp.roughapp-1.apk 

Так как точно я могу изменить путь, на который он ссылается здесь

on path: /data/app/roughapp.roughapp-1.apk 
+0

Почему вы заявляете о деятельности в вашем манифесте Android? thats сообщая системе Android «Я написал этот код, он будет в моем пакете» – panini

+0

Nice pic with voyboy – Ogen

+0

haha ​​спасибо человеку – user3163793

ответ

0

Лучшим решением является использование PackageManager и его метода getLaunchIntentForPackage(String packageName);

http://developer.android.com/reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage%28java.lang.String%29

Этот метод возвращает полезное намерение или null, если приложение не установлено или не имеет такого намерения.

PackageManager может быть извлечь из любого контекста через getPackageManager();

Удачи.

+0

Так как же я использую это? Я все еще довольно новичок в кодировании в целом, тем более, что Android. Благодаря! – user3163793

+0

startActivity (getPackageManager(). GetLaunchIntentForPackage ("com.splashtop.remote")); // Предполагая, что это правильный пакет –

+0

Получил ошибку: имя 'getPackageManager' не существует в текущем контексте. Извините, если мне не хватает чего-то очевидного. – user3163793

0

Если вы объявите это действие в своем собственном манифесте, он будет искать его в вашем собственном приложении. Для того, чтобы начать деятельность за пределами вашего собственного приложения, удалите то, что вы положили в вашем манифесте и использовать следующий код:

Intent intent = new Intent(); 
intent.setComponent(new ComponentName("com.splashtop.remote","FirstActivity")); 
startActivity(intent); 
+0

хорошо, извините, я испортил манифест, я довольно новичок в этом. Я сделал то, что вы сказали делать, и он дал эту ошибку: «Android.Content.Intent» не содержит определение для «ACTION_MAIN», а метод расширения «ACTION_MAIN» принимающего первый аргумент типа «Android. Content.Intent '(вам не хватает директивы using или ссылки для сборки?) – user3163793

+0

Неплохо, вы не должны включать это. Посмотрите мой обновленный ответ. –

+0

, поэтому я думаю, что именно здесь я получил Идею, которую я должен был объявить в своем манифестном файле. Это дает мне это, когда я запускаю его сейчас: [mono-rt] android.content.ActivityNotFoundException: Невозможно найти явный класс активности {com.splashtop.remote/com.remote.FirstActivity}; Вы объявили эту активность в своем AndroidManifest.xml? – user3163793

Смежные вопросы