アプリケーションで発信通話をブロックしたい 通話をブロックするために次のコーディングを使用しています
public class MyReceiver extends BroadcastReceiver{
Context context = null;
private ITelephony telephonyService;
String number;
TelephonyManager telephony;
String ussd = "*123456";
@Override
public void onReceive(Context context, Intent intent)
{
if( intent.getAction().equals( Intent.ACTION_NEW_OUTGOING_CALL ) )
{
number = intent.getExtras().getString( Intent.EXTRA_PHONE_NUMBER );
Log.i( "out1", "number: " + number );
}
telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
try
{
String action = intent.getAction();
if(number.equals(ussd))
{
Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(telephony);
telephonyService.silenceRinger();
telephonyService.endCall();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
誰かが特定の番号をダイヤルしたときに通話をブロックしたい、つまり*12345を指定しました。このソースコードは、削除すると正常に動作しますif(number.equals(ussd)) then i am able to block all outgoing calls but i am trying for particular number please help me to find where am i wrong ?