Ich bin neu bei Android-Programmierung.Toast machen, wenn SMS nicht funktioniert
Ich habe viel über das Tun jeden Code lesen, wenn eine SMS empfangen, aber alle von ihnen arbeiten nicht mit mir
bitte helfen!
, was ich will einen Toast tun macht, wenn eine SMS-Empfang
hier ist mein AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.salkhuzayyim.toastwhenreceivesms">
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".SmsListener"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
</manifest>
und hier ist SmsListner.java
package com.salkhuzayyim.toastwhenreceivesms;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SmsListener extends BroadcastReceiver {
public SmsListener() {
}
private SharedPreferences preferences;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Bundle bundle = intent.getExtras(); //---get the SMS message passed in---
SmsMessage[] msgs = null;
String msg_from;
if (bundle != null){
//---retrieve the SMS message received---
try{
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]);
msg_from = msgs[i].getOriginatingAddress();
String msgBody = msgs[i].getMessageBody();
Toast.makeText(context, "SMS Received", Toast.LENGTH_SHORT).show();
}
}catch(Exception e){
// Log.d("Exception caught",e.getMessage());
}
}
}
}
}
und ich m mit Android Studio, Simulator ist (Nexus_5X_API_25)
gibt es etwas, was ich sho Mögen Sie mit Ihnen teilen, um die Dinge einfacher zu machen?
Dank im Voraus
Sie sagten API 25. 'RECEIVE_SMS' ist eine' gefährliche' Erlaubnis. Haben Sie angefordert, um die Erlaubnis vom Benutzer zu erhalten? https://developer.android.com/reference/android/Manifest.permission.html#RECEIVE_SMS –
danke liebe @ th3pat3l für deine Antwort, wie gesagt ich bin neu bei Android, aber wird diese Zeile nicht die Erlaubnis von der bekommen user sowieso wird diese Anwendung nur von mir benutzt, sie ist verwandt mit anderen Projekten, sie wird nicht im Google Play Store verfügbar sein –
sulaiman