안녕하세요.
타켓보드가 부팅시 Service 를 구동하고 싶습니다.
정확하지는 않지만 아래와 같이 했는데.. 부팅 후 Service 모듈이 구동이 되지 않습니다. 아래의 방법이 틀린것 같은데..
이 ServiceManager.apk 는 /data/app 에 존재하고요..
좀 모호한게.. 부팅 메세지를 수신할려면 이 ServiceManager 가 어딘가에 등록되어 있어야 하지 않나요?
뭐가 문제인지 잘 모르겠습니다.
어떻게 해야 하나요? 구체적인 방법 부탁드립니다.
======= ServiceManager.java
public class ServiceManager extends BroadcastReceiver {
public static final String TAG = "ServiceManager";
@Override public void onReceive(Context context, Intent intent) {
Log.i(TAG, "======== Service Manager Start ==============");
if( "android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Log.i(TAG, "======== BOOT_COMPLETED Message Received ==============");
ComponentName comp = new ComponentName(context.getPackageName(), TestService.class.getName());
ComponentName service = context.startService(new Intent().setComponent(comp));
if (null == service){
Log.e(TAG, "Could not start service " + comp.toString());
} else
Log.i(TAG, "======== SgObixService Service Started ==============");
} else {
Log.e(TAG, "Received unexpected intent " + intent.toString());
}
Log.i(TAG, "======== Service Manager End ==============");
}
}
============ Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.service"
android:versionCode="1"
android:versionName="1.0">
<receiver
android:name=".ServiceManager"
android:enabled="true"
android:exported="false"
android:label="ServiceManager">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<uses-sdk android:targetSdkVersion="4"/>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>