Androidフォンで着信および発信の機能を無効にしたいのですが、AndroidフォンではGPRSおよびその他のアプリケーションの実行のみが許可されている必要があります。
私のAndroidモデルはSamsungAceです
これに関する解決策を教えてください。前もって感謝します。
Androidフォンで着信および発信の機能を無効にしたいのですが、AndroidフォンではGPRSおよびその他のアプリケーションの実行のみが許可されている必要があります。
私のAndroidモデルはSamsungAceです
これに関する解決策を教えてください。前もって感謝します。
このコードは、すべての通話 (着信と発信)をブロックします。
import java.lang.reflect.Method;
import android.content.Context;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import com.CallLogApp.helper.BlockNumberHelper;
import com.CallLogApp.util.UDF;
import com.android.internal.telephony.ITelephony;
public class CustomPhoneStateListener extends PhoneStateListener {
//private static final String TAG = "PhoneStateChanged";
Context context;
public CustomPhoneStateListener(Context context) {
super();
this.context = context;
}
@Override
public void onCallStateChanged(int state, String outGoingNumber) {
super.onCallStateChanged(state, outGoingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
endCallIfBlocked(outGoingNumber);
break;
case TelephonyManager.CALL_STATE_RINGING:
break;
default:
break;
}
}
private void endCallIfBlocked(String outGoingNumber) {
try {
// Java reflection to gain access to TelephonyManager's
// ITelephony getter
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Class<?> c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm);
if (new BlockNumberHelper(context).isBlocked(outGoingNumber))
{
telephonyService = (ITelephony) m.invoke(tm);
telephonyService.silenceRinger();
telephonyService.endCall();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
ここで CALL_STATE_OFFHOOK 状態は、通話が接続されるたびに、着信通話を受信したときに呼び出されます
着信か発信かを知る方法はありません
ただし、両方のシナリオで接続しようとしている通話を終了できます
あなたがグーグルのアンドロイドAPIを使ってdelevopするものは何でも。
Androidのアーキテクチャのアプリケーション層に配置されます。ただし、呼び出しの管理は、アプリケーションフレームワークレイヤーに実装されているものです。それで:
アプリケーションからの通話をブロックする場合は、通話状態の発生を回避できないため、テレフォニーマネージャーが通話を処理したら、telephonyService.endCall()で終了します。
アプリケーション層に到達しないように本当に呼び出しが必要な場合..カスタムのAndroidコンパイルが必要になると思います
しかし、一部の携帯電話プロバイダーが音声チャネルをブロックする「データカード」を提供していると考えたことはありますか?これらは、3Gモバイルインターネットモデムに搭載されている種類のカードです。