Android 跨應用調用Activity及Service

jopen 11年前發布 | 22K 次閱讀 Android Android開發 移動開發

如何調用另外一個app應用的activity或者service,本文提供一個驗證可行的方法。

調用方法:

    Intent intent=new Intent("youActionName");  
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
    intent.addCategory(Intent.CATEGORY_DEFAULT);  
    intent.putExtra("type",inType);  //if needed   
    ComponentName cn=new ComponentName("applicationPackageName","packagename+classname");  
    intent.setComponent(cn);  
    startActivity(intent);  

在被調用的App里面需要定義 class (activity 或 service)屬性和filter。需要明確的幾點

如果不是action.Main,則需要主動申明Android:exported="true",允許外部訪問

action name 要一致

category name要一致,如果調用的地方沒有明確聲明,被調用的地方要聲明DEFAULT

    <activity android:name=".pbap.BluetoothPbapLuancherActivity"     
                android:label="Bluetooth"    
                android:exported="true"    
                android:process="@string/process">    
        <intent-filter>                                   
            <action android:name="android.intent.action.MAIN" />    
            <category android:name="android.intent.category.DEFAULT" />     
        </intent-filter>    
    </activity>    

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!