ورود

View Full Version : اطلاع از پایان تماس



aryana_b
شنبه 13 تیر 1394, 13:44 عصر
سلام دوستان
در قسمتی از برنامم میخوام اگه شماره خاصی تماس گرفت گوشی به حالت سایلنت بره و بعد از قطع شدن تماس به حالت قبلی برگرده
مشکلم اینه نمیدونم چطور باید بفهمم که تماس کی قطع شده

این کد مربوط به حالت سایلنت رفتن


@Override
public void onReceive(Context context, Intent intent) {
Log.v(TAG, "Receving....");
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE );
try {

//am=(AudioManager)getSystemService(Context.AUDIO_SE RVICE);
am = (AudioManager)context.getSystemService(Context.AUD IO_SERVICE);
temp = (AudioManager)context.getSystemService(Context.AUD IO_SERVICE);


Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);

telephonyService = (ITelephony) m.invoke(telephony);
Bundle bundle=intent.getExtras();
String phoneNumber = bundle.getString("incoming_number");

if ((phoneNumber != null) && (phoneNumber.equals(silencenum))){

temp.getRingerMode();
am.setRingerMode(0);

//اینجا میخوام بعد از اینکه تماس قطع شد به حالت قبلی برگرده

}

} catch (Exception e) {
e.printStackTrace();
}

}



temp رو گذاشتم تا حالت قبلی تلفن از سایلنت شدن رو نگه داره

amin_nez
شنبه 13 تیر 1394, 14:13 عصر
ببینید این کد کار میکنه؟

String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE );
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE) || state.equals(TelephonyManager.CALL_STATE_IDLE)) {
/// قطع شدن
}
اگه کار کرد و توضیحات بیشتری خواستید بپرسید.

aryana_b
شنبه 13 تیر 1394, 14:48 عصر
مرسی دوست عزیز
کار کرد و مشکل برطرف شد