1

ブロードキャストからサービスを開始しようとしていますが、何らかの理由でサービスが呼び出されません。これは私の受信機です:

private void initReceiver() {
    receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals("telecom.IT.DigiCARE.REC")) {
                Log.d("MainActivity", "Intent received from server!");

                byte[] data = intent.getByteArrayExtra("Data");
                String params = intent.getStringExtra("Params");

                Intent i = new Intent(MainActivity.this, DecodeService.class);
                i.putExtra("Data", data);
                i.putExtra("Params", params);

                startService(i);
            }
        }
    };

    registerReceiver(receiver, new IntentFilter("telecom.IT.DigiCARE.REC"));
}

これは私のサービスです:

public class DecodeService extends Service {

@Override
public void onStart(Intent intent, int startId) {
    String params = intent.getStringExtra("Params");
    byte[] data = intent.getByteArrayExtra("Data");

    decodeMessage(params, data);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    String params = intent.getStringExtra("Params");
    byte[] data = intent.getByteArrayExtra("Data");

    decodeMessage(params, data);
    return START_STICKY;
}
}

マニフェストのどこかにエラーがあると思っていましたが、表示されません。

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

<services
        android:name=".DecodeService"
        android:enabled="true" />

startServiceが呼び出されたためにブロードキャストが機能しないためではありませんが、その後は何も起こりません。

4

2 に答える 2

0

私は問題を見つけたと思います..私はサービスの代わりにサービス* s *を持っていました。それがlintエラーか何かを生成しなかったことは奇妙です。

于 2012-10-09T14:55:00.580 に答える
0

宣言は、サービスパッケージを指定するwhereの宣言後に宣言する必要があります。それを試してみてください:

        <meta-data <!-- First -->
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
        <services <!-- Second -->
                android:name=".DecodeService"
                android:enabled="true" />
于 2015-09-23T13:50:43.050 に答える