Poniższy kod działa dobrze, często znajduję przykładowy kod do pominięcia, więc zmienię swój kod na
<service android:name=".MyInternetServer"></service>
ale pojawia się błąd "Usługa nie może zostać znaleziona".
Zgaduję, że pakiet = "com.example.enabledisablebroadcastreceiver" i
<service android:name="com.code4reference.enabledisablebroadcastreceiver.MyInternetServer"></service>,
może to powinno być pełne imię, prawda?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.enabledisablebroadcastreceiver"
android:versionCode="1"
android:versionName="1.0" >
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.code4reference.enabledisablebroadcastreceiver.EnableDisableBroadcastReceiver"
android:label="@string/title_activity_enable_disable_boradcast_receiver" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Broadcast receiver -->
<receiver android:name="com.code4reference.enabledisablebroadcastreceiver.AlarmManagerBroadcastReceiver" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<service android:name="com.code4reference.enabledisablebroadcastreceiver.MyInternetServer"></service>
</application>
</manifest>
Odpowiedzi:
2 dla odpowiedzi № 1Skrócona notacja "kropka" w pliku manifestu działa jak opisano w dokumentacji:
Jednak jako skrót, jeśli pierwszym znakiem ciągu jest kropka jest dołączana do nazwy pakietu aplikacji (jako określony przez atrybut pakietu <manifest> elementu).
Więc w twoim przypadku, używając:
.MyInternetServer
... jest skrótem dla:
com.example.enabledisablebroadcastreceiver.MyInternetServer
jak to jest w twoim <manifest>
"s package
atrybut.
Domyślam się, że prawdopodobnie chcesz zaktualizować atrybut pakietu manifestu, aby pasował do pakietu, którego faktycznie używasz w projekcie.
0 dla odpowiedzi nr 2
Tak, daj swojej usłudze pełną ścieżkę, gdzie faktycznie znajduje się pełna nazwa pakietu, a następnie sprawdź, będzie działać.