Я делаю отмену звонка. В основном это отменяет предстоящий вызов, если ваш телефон находится в заднем положении в таблице или на земле (данные акселерометра). Я делаю Broadcast Receiver
и запись его на манифесте также дала действие этого android.intent.action.PHONE_STATE
Отмена предстоящего телефонного звонка в android
public class PhoneCallReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Intent si=new Intent(context, MyService.class);
context.startService(si);
TelephonyManager telephony = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(telephony);
//telephonyService.silenceRinger();
telephonyService.endCall();
Log.e("in try catch", "yes");
Log.e("in try catch", "call cancel");
shrededit.putInt("newcallingstate", 0);
shrededit.commit();
context.stopService(si);
} catch (Exception e) {
e.printStackTrace();
}
Log.e("pr", "out side true block");
}
}
Мой код работает очень хорошо, если я только использовать этот код без класса акселерометра услуг, но когда я использую класс акселерометра и сделать намерение, прежде чем этот ниже код. Мое приложение не отменяет вызов или не дает никакого типа или ошибки. Я думаю, что это не совсем уверен, что это проблема контекста. Так что, пожалуйста, помогите мне.
Благодарим за редактирование моего вопроса, я позабочусь об этом в следующий раз – Pankaj