当应用程序安装到设备时自动启动服务

时间:2014-10-28 09:11:52

标签: android android-service android-broadcast

我想在安装应用程序时自动启动服务。启动后或设备启动后,服务正常运行。那么,安装应用程序后是否可以启动服务?

3 个答案:

答案 0 :(得分:0)

谷歌显示正确的答案作为第一个打击所以...你有没有做过一些研究? How to start a Service when .apk is Installed for the first time

总结:你不能这样做。

答案 1 :(得分:0)

是的,通过收听已安装软件包的广播

是可能的

这是你的广播

public class InstallBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = null;
        if (intent != null) {
            action = intent.getAction();
        }

        if (action != null && Intent.ACTION_PACKAGE_ADDED.equals(action)) {
            String dataString = intent.getDataString();
            if (dataString != null
                    && dataString.equals(YOUR_PACKAGE_NAME)) {

                //Launch your service :)
            }
        }
    }
}

这是你的清单

<receiver
        android:name=".InstallBroadcastReceiver"
        android:enabled="false"
        android:exported="false">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED"/>
        <data android:scheme="package"/>
    </intent-filter>
</receiver>

希望它有所帮助;)

答案 2 :(得分:0)

Techanically当你的应用安装时,它无法启动服务。可以从Google Glass Development Kit开始。可以选择通过语音安装您的应用程序,也可以启动服务(语音触发命令)。

 <service
            android:name="com.est.poc.glass.service.POCGlassService"
            android:enabled="true"
            android:exported="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
            </intent-filter>
            <!-- Voice command found in res/xml/voice_trigger_start -->
            <meta-data
                android:name="com.google.android.glass.VoiceTrigger"
                android:resource="@xml/voice_trigger_start" />
            <meta-data
                android:name="com.google.android.glass.voice_trigger"
                android:resource="@string/voice_trigger_title" />
        </service>