2017-01-18 20 views
2

Я разрабатываю приложение, которое открывает другие приложения с намерениями и работает отлично, но теперь мне нужно открыть конкретную деятельность (или часть приложения), и я не знаю, возможно ли это.Как открыть из моего приложения определенную активность из другого приложения?

В этом случае я хочу открыть Street View из приложения Google Cardboard. Я не могу понять или найти способ сделать это.

Вот цель им помощи (что работает, но не полный заполнить задачу):

public void actionOpenCardboard(View view) { 
    Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.google.samples.apps.cardboarddemo"); 
    if (launchIntent != null) { 
     startActivity(launchIntent); 
    } 
} 

ответ

0

Вы можете запустить Activity так:

Intent intent = new Intent(); 
intent.setComponent(new ComponentName("com.example", "com.example.MyExampleActivity")); 
startActivity(intent); 

Кроме того, вам может понадобиться добавьте android:exported="true" в манифест Activity, из которого вы вызываете вышеуказанный код.

+0

Ему нужно открыть StreetView приложения Google Cardboard из своего приложения. – rupinderjeet

+0

Если это «действие» внутри приложения «Картон», он может использовать его, если он знает имя активности и имя пакета приложения – OBX

0

Вы должны узнать, как «приложение Google Картон» открывает «Просмотр улиц» и какие параметры необходимы (то есть текущий уровень lat, lon, zoom).

Если вам повезет, то IntentIntercept app поможет вам узнать подробности о намерениях.

Если вам просто нужна карта, и это не важно, если карта происходит из «Приложения Google Картона» или любого другого приложения карты, вы можете попробовать ACTION_VIEW с помощью geo uri.

private void onButtonClick[] { 
    double lat = 52.1; 
    double lon = 9.2; 
    double zoom = 10; 

    // no need for de.k3b.geo-lib for simple request: 
    String uriGeoSimple = String.format(Locale.ENGLISH, 
       "geo:0,0?q=%f,%f&z=%f", lat, lon,zoom); 

    // (1) GEOClientActivity creates and sends an android ACTION_VIEW intent 
    // with coordinate 
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uriGeoSimple)); 
    startActivity(intent); 
} 

Для получения дополнительной информации см больше о гео-URI формате

если вы выяснили намерение детали, необходимую для «Google Картонной приложении», пожалуйста, не стесняйтесь добавить Infos до https://github.com/k3b/k3b-geoHelper/wiki/Android-Geo-aware-apps