特定の送信者からSMSメッセージを取得しようとするアプリケーションがあり、新しい動作を開始します。 Debug Asを使用してEclipseで実行していて、エミュレータMy BroadcastReceiverを使用するとうまくいくので、期待通りにブレークポイントにヒットします。 EclipseでRun Asを使用してエミュレータを起動すると、SMSメッセージは決して捕まえられません。 BroadcastReceiverは、Log出力の欠如に基づいて決して呼び出されないようです。 SMSは私の電話で走っているときにも捕まえられません。なぜそれは一方通行ではなく、別の方法で動作する任意のアイデアですか?SMSブロードキャストレシーバは、エミュレータでのみデバッグで動作します
私の携帯電話には非常に少数のアプリがありますが、私が知っている唯一のものは、テキストメッセージをキャッチしているのが内蔵のメッセンジャーです。
<receiver android:name=".sms.ConfirmationResponder">
<intent-filter android:priority="100">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
...
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
受信機:モード「などのファイル名を指定して実行」とは、logcat情報を表示しないとき
public class ConfirmationResponder extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.i("SMS", "############################ Confirmation being read");
// More stuff after this but I don't even get the log message
}
}
を役に立てば幸い? – Yury
私はエミュレータと私の携帯電話の両方にEclipseのRunコマンドを使用しています。 – Thien
したがって、デバッグモードとは、実際の電話機ではエミュレータとリリースモードを意味しますか?おそらく、実際の電話機では、SMS受信のためにインテントを注文しており、標準受信機はより高い優先度を持っています。優先度を上げてみてください(999に設定してください)。たぶんこれが役立ちます。 – Yury