Starta en aktivitet i en app från en annan app

Det här “tricket” kan vara användbart om man skapar en liten svit med appar som är tätt bundna till varandra, men inte nödvändigtvis måste leva under samma tak/app.

I appen vars aktivitet du vill starta utifrån, gör

Ändringar i Manifestet

Leta upp den aktivitet-tag, <activity>, som du vill kunna nå utifrån och lägg antingen till ett <intent>-filter, eller en rad

<activity
  android:name=".activities.OpenMeActivity"
  android:exported="true" >
</activity>

Som exempel kan ett helt Manifest se ut

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="nu.opentest"
 android:versionCode="1"
 android:versionName="1" >
  <uses-sdk android:minSdkVersion="7" />
  <application
    android:name=".OpenTest"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name">
    <activity
      android:name=".activities.OpenTest"
      android:label="@string/app_name">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity
      android:name=".activities.OpenMeActivity"
      android:exported="true" >
    </activity>
  </application>
</manifest>

I appen du vill kalla på en annan epps aktivitet, gör

Följande i kod

Intent intent = new Intent();
intent.setComponent(new ComponentName("nu.opentest", "nu.opentest.activities.OpenMeActivity"));
startActivity(intent);

Med detta kan man nu alltså inifrån en app få upp en specifik aktivitet i en annan app. Jag rekommenderar starkt en massa try/catches för att inte åka på en nit under produktion.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.