在一个app中启动另外一个app的service

时间:2022-01-13 16:45:42

例如:appA要启动appB中的service

步骤一:

appB中service的声明,如图

<service
    android:name="com.appb.BService"
    android:exported="true"//必须
    android:permission="app.custom.permission">//三个属性缺一不可
    <intent-filter>
        <action android:name="android.intent.action.START_B_SERVICE" />//action名字自定义,建议是xx.xx.xx形式
    </intent-filter>
</service>
步骤二:

自定义权限声明:必须在appBmainfest.xml中的<application>标签外声明

<permission
    android:name="app.custom.permission"
    android:protectionLevel="signature" />
<uses-permission android:name="app.custom.permission" />
步骤三:

在appA中声明权限

<uses-permission android:name="app.custom.permission" />
步骤四:

调用:

Intent intent = new Intent();
intent.setPackage("com.appb");
intent.setAction("android.intent.action.START_B_SERVICE");
startService(intent);

完毕!