۲ محمد باقر ملایی
SMS BroadCastReceiver
جامعه جاوا (اندروید) ایجاد شده در ۰۶ خرداد ۱۳۹۹

سلام استاد خسته نباشید
من میخوام به اس‌ام‌اس‌ها گوش بدم ولی هر کاری میکنم انجام نمیشه شارژم تموم شد از بس اس دادم به خودم :)
 

<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>

 

وحید گروسی ۱۵ خرداد ۱۳۹۹، ۰۵:۳۵