2011-08-24 41 views
0

这可能是一个非常简单的问题,但由于我是新的android开发...如何从android中不在同一项目中的活动启动服务?

我试图从活动,是不是在同一个包(远程服务)启动服务具有以下代码:

Intent i = new Intent("com.vasilis.service.GPSService"); 
i.putExtra("com.vasilis.service.GPSEnable", true); 
this.startService(i); 

但是这段代码没有任何反应!

服务项目/包的清单...

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.vasilis.service" android:versionCode="1" android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".serv_activity" android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <service android:name=".GPSService" android:exported="true" android:enabled="true"></service> 

     <activity android:name=".incomingCallActivity" android:label="@string/app_name" 
      android:theme="@android:style/Theme.Dialog"></activity> 

     <receiver android:name="OnBootCompleteReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"></action> 
      </intent-filter> 
     </receiver> 

    </application> 
    <uses-sdk android:minSdkVersion="7" /> 

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
    <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 
</manifest> 

我失去了一些东西!任何帮助?

回答

1

类似的问题在这里问:How do I start a service which is defined in a different package?

差不多,你只需要它添加到manifest.xml中

<service android:name=".GPSService" android:exported="true" android:enabled="true"> 
    <intent-filter> 
     <action android:name="com.vasilis.service.GPSEnable" /> 
    </intent-filter> 
</service> 

或任何类别的名称;)如果这并未”吨似乎工作,位于Service文件有很多很好的建议。

相关问题