0

SMS データ メッセージを受信し、その内容を暗号化してデータベースに保存するアプリを作成しています。それを実現するために、次のようにローカル BroadcastReceiver を使用してサービスを作成しました。

public class SMMReceiverService extends Service {

      private class SMMreceiver extends BroadcastReceiver {

          @Override
          public void onReceive(Context context, Intent intent)
          {
              Bundle extras = intent.getExtras();
              //call a method from service
          }

      }

      private SMMreceiver smmReceiver;
      private IntentFilter intentFilter;

      @Override
      public void onCreate(){
            super.onCreate();

            android.os.Debug.waitForDebugger();

            smmReceiver = new SMMreceiver();
            intentFilter = new IntentFilter();

            intentFilter.addAction("android.provider.Telephony.DATA_SMS_RECEIVED"); 
            intentFilter.addDataScheme("sms");
            intentFilter.addDataAuthority("localhost","8901");

            registerReceiver(smmReceiver, intentFilter);


     }
}

サービスは正常に起動していますが、SMMreceiver の onReceive メソッドが呼び出されません。マニフェストでは、次のようにサービスのみを宣言しました。

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

必要なすべての権限もあります。

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />

私の問題を正しい方法で解決するにはどうすればよいですか? 私はあなたの助けに感謝します!

4

1 に答える 1