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" />
私の問題を正しい方法で解決するにはどうすればよいですか? 私はあなたの助けに感謝します!