首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android短信通知生成

Android短信通知生成
EN

Stack Overflow用户
提问于 2017-09-22 15:31:16
回答 1查看 120关注 0票数 0

我正在尝试创建一个自定义的解决方案,以通知短信接收。我在Stackoverflow上找到了一些解决方案,但它们不起作用,有人能帮助我吗,我错了。下面是我的代码。

代码语言:javascript
复制
public class MainActivity extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {

        Toast toast = Toast.makeText(context,"Message Received", Toast.LENGTH_LONG);
        toast.show();

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setContentTitle("My notification")
                        .setContentText("SMS Received");


        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(1, mBuilder.build());
    }
}

和Manifest文件:

代码语言:javascript
复制
    <receiver android:name=".MainActivity"
        android:enabled="true"
        android:exported="true"
        >
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

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

回答 1

Stack Overflow用户

发布于 2017-09-22 16:48:27

试试这个:

代码语言:javascript
复制
<receiver
        android:name=".IncomingSmsReceiver"
        android:permission="android.permission.BROADCAST_SMS"
        android:priority="1000">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
</receiver>

public class IncomingSmsReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {

        if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(intent.getAction())) {
            String messageBody = "no data";
            String messageFrom = "no data";

            for (SmsMessage smsMessage : Telephony.Sms.Intents.getMessagesFromIntent(intent)) {
                messageBody = smsMessage.getMessageBody();
                messageFrom = smsMessage.getDisplayOriginatingAddress();
            }

            Log.d("Sms:", messageBody + " " + messageFrom);
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46359183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档