我可以省略什么样的情况?

时间:2013-10-15 07:24:18

标签: android

以下代码运行良好,我经常会发现一些示例代码要省略,所以我将代码更改为

<service android:name=".MyInternetServer"></service>  

但是我收到错误“无法找到服务”。

我猜包=“com.example.enabledisablebroadcastreceiver”和

<service android:name="com.code4reference.enabledisablebroadcastreceiver.MyInternetServer"></service>,  

也许应该使用全名,对吧?

<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>

2 个答案:

答案 0 :(得分:2)

清单文件中的简写“点”符号有效as described in the documentation

  

但是,作为简写,如果字符串的第一个字符是a   句点,字符串被附加到应用程序的包名称(如   由&lt; manifest&gt;指定element的包属性)。

所以在你的情况下,使用:

.MyInternetServer

...是:

的简写
com.example.enabledisablebroadcastreceiver.MyInternetServer

这就是<manifest>的{​​{1}}属性中的内容。

我猜你可能想要更新你的manifest的package属性,以匹配你实际用于项目的包。

答案 1 :(得分:0)

是的,为您的服务提供一个完整的路径,其实际位置包含完整的包名,然后检查,它将起作用。