PDA

View Full Version : اطلاع از دریافت تماس و پیامک



ghamgin
یک شنبه 17 مرداد 1395, 07:10 صبح
سلام
چطور میتوانم در برنامه قابلیت اطلاع از دریافت تماس و پیامک رو بذارم طوری که اگر تماس و یا پیامی داشت بصورت پیام روی صفحه حتی در حالت بسته شدن برنامه به کاربر اطلاع بده
میدانم از broadcast receiver باید استفاده کنم اما کدهای توی اینترنت جواب نداد
ممنون میشم راهنمایی کنید

hasan_esfahan
یک شنبه 17 مرداد 1395, 12:37 عصر
این کار میکنه من توی کدم از این استفاده کردم


لینک (http://androidexample.com/Incomming_SMS_Broadcast_Receiver_-_Android_Example/index.php?view=article_discription&aid=62&aaid=87)


من شاید این روزها بیش از صد بار این موضوع تویی دوستان دیدم

اگر از sdk های 23 به بالا استفاده حواستون به پرمیژن توی منیفست باشه

به صورت پیش فرض موقع نصب کار فعال نمیشه


برید دستی تویی تنظیمات فعال کنید


و برای کد نهایی باید کد بنویسید که چک کنه اگر پرمیژن نداره از سیستم درخواست کنه

ghamgin
دوشنبه 18 مرداد 1395, 08:30 صبح
ممنون از وقتی که میزارید
برا تماس این نوشتم مجوز phone-state دادم
اما در اجرا انگار نه انگار
BroadcastReceiver mybroadcast = new BroadcastReceiver() {
//When Event is published, onReceive method is called
@SuppressLint("NewApi") @Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.i("[BroadcastReceiver]", "MyReceiver");
try{
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE );

if(state.equals(TelephonyManager.EXTRA_STATE_RINGI NG)){
Toast.makeText(context, "Phone Is Ringing", Toast.LENGTH_LONG).show();
}

if(state.equals(TelephonyManager.EXTRA_STATE_OFFHO OK)){
Toast.makeText(context, "Call Recieved", Toast.LENGTH_LONG).show();
}

if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)){
Toast.makeText(context, "Phone Is Idle", Toast.LENGTH_LONG).show();
}
}
catch(Exception e){e.printStackTrace();
}
};



-<receiver android:name=".MyReceiver" android:exported="false" android:enabled="true">


-<intent-filter>


<action android:name="android.intent.action.PHONE_STATE"/>


</intent-filter>

</receiver>