gpt4 book ai didi

android - 使用服务的传入短信通知

转载 作者:行者123 更新时间:2023-12-05 00:07:26 25 4
gpt4 key购买 nike

几天来我对自己的问题感到震惊。实际上我想做的是创建一个通知服务,即使用户不在应用程序中也能向用户发出警报。该服务应每 5 分钟检查一次传入消息。并且通知应该与通知抽屉中的通知收件箱样式完全相同。我需要通过单击通知来调用特定 Activity 。谁能建议我该怎么做?感谢您的帮助....

最佳答案

首先,您需要获得接收和阅读短信的权限。您可以使用以下代码在 androidManifest.xml 中执行此操作:-

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sms"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

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

<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".SMSBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>

</application></manifest>

然后您需要设置 BroadcastReceiver 以接收传入短信的通知。

public class SMSBroadcastReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "no message received";
if(bundle != null){

Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for(int i=0; i<msgs.length;i++){

msgs[i]= SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from Phone No: " +msgs[i].getOriginatingAddress();
str +="\n"+"Message is: ";
str += msgs[i].getMessageBody().toString();
str +="\n";
}

Log.v("Debug", str);
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
}}

以上代码将为您提供 SMS 发件人的联系电话和收到的消息。

关于android - 使用服务的传入短信通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20703696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com