1

「起動」時に通知を発行し、サービスが実行されると別の通知を発行するサービスをまとめようとしています。マニフェストに次のものを使用しています。

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="my.project"
    android:versionCode="1"
    android:versionName="1.0"
>

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="17"
    />

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
    >

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

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

    </application>

</manifest>

残念ながら、デバイスを再起動しても何も表示されず、サービスが開始されていないように見えます。

これが私のBroadcastReceiverサブクラスの実装です:

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.d("Test", "Bootstrap run!");

        int notificationId = 1;
        NotificationCompat.Builder startNotification = new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("Glance")
            .setContentText("Starting the Glance service.")
        ;
        NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(notificationId, startNotification.build());

        //
        // Run the service.
        //
        Intent startServiceIntent = new Intent(context, Manager.class);
        context.startService(startServiceIntent);

    }

ここで私が間違っていることや、機能しない原因となっている可能性があることについて何か提案はありますか?

ありがとう!

4

1 に答える 1