سلام استاد خسته نباشید
من میخوام به اساماسها گوش بدم ولی هر کاری میکنم انجام نمیشه شارژم تموم شد از بس اس دادم به خودم :)
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<receiver android:name=".MyBroadCastReceiver"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
این مانیفستم هستش
public class MyBroadCastReceiver extends BroadcastReceiver {
private static final String TAG = "MyBroadCastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive: ");
}
}
و این هم کدم
روی اندروید 10 و پنج تست گرفتم کار نکرد
لطفا راهنماییم کنید
این یکی روش هم امتحان کردم نشد
public class MainActivity extends BaseActivity {
private MainViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewModel = new MainViewModel(this);
registerReceiver(broadcastReceiver,
new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));
// checkInternetConnection();
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
shortMessage("some sms received!");
}
};
}
سلام میتونین از روش زیر امتحان کنین
class VSmsReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val pdus = intent.extras.get("pdus") as Array<*>
val sms = SmsMessage.createFromPdu(pdus[0] as ByteArray)
Common.vLog(sms.originatingAddress)
if (VBase.getCurrentActivity() != null) {
openEditTransactionDialog(VBase.getContext(), sms)
return
}
Dialog.openReceiveTransactionActivityDialog(sms)
}
fun decodeSms(intent: Intent) {
val pdus = intent.extras.get("pdus") as Array<*>
val sms = SmsMessage.createFromPdu(pdus[0] as ByteArray)
Log.i("LOGGER", "sender is ${sms.originatingAddress}")
val senderTel = sms.originatingAddress
val messageBody = sms.messageBody
// Toast.makeText(VBase.getContext(), senderTel + " : " + messageBody, Toast.LENGTH_LONG).show();
}
}
و از به روش زیر داخل منیفست ست کنین
<receiver
android:name="project.core.services.VSmsReceiver"
android:enabled="true"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>