ブロックまたは許可リストに異なる電話番号を設定できるアプリを作成したいと思います。特定の電話番号のみをブロックしたり許可したりすることは可能ですか?もしそうなら、どうすればこのことをやりますか?事前に感謝、ジョナサン。着信および発信電話をブロックしていますか?
0
A
答えて
0
登録されたPhoneStateListenerを使用してサービスを作成する必要があるように思えます。このサービスを使用すると、電話の状態の変更に関するイベントを聴くことができます。だから誰かがあなたのリスナーでそのイベントをキャッチし、それに応じて反応することができます。あなた自身のPhoneStateListenerは、次のようになります。電話の状態は着信番号があなたの「ブロックされた番号に番号と等しい場合は、着信コールをブロックするように、あなたのロジックを置くことができCALL_STATE_RINGING等しい場合
public class CustomPhoneStateListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
doSomething();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
doSomething();
break;
case TelephonyManager.CALL_STATE_RINGING:
if(incomingNumber.equels(blockedNumber)) {
blockNumber();
}
break;
}
}
}
をリスト"。すべての機能を有効にするには、そのリスナーをサービスに登録する必要があります(onCreateメソッドでonDestroyで登録を忘れないでください)。また、電話状態を読み取ることができるアンドロイドマニフェストに権限を追加します。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
0
最初の放送レシーバを作成します。 1))
2レシーバをマニフェストに追加します。あなたは少なくとも一度にアプリを開始した後
public class CallReciever extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
ArrayList<String> rejectList=getListFromDb()//you need to implement this method
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING))
{
String num = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
if (rejectList.Contains(num))
{
disconnectCall();
}
}
public void disconnectCall(){
try {
String serviceManagerName = "android.os.ServiceManager";
String serviceManagerNativeName = "android.os.ServiceManagerNative";
String telephonyName = "com.android.internal.telephony.ITelephony";
Class<?> telephonyClass;
Class<?> telephonyStubClass;
Class<?> serviceManagerClass;
Class<?> serviceManagerNativeClass;
Method telephonyEndCall;
Object telephonyObject;
Object serviceManagerObject;
telephonyClass = Class.forName(telephonyName);
telephonyStubClass = telephonyClass.getClasses()[0];
serviceManagerClass = Class.forName(serviceManagerName);
serviceManagerNativeClass = Class.forName(serviceManagerNativeName);
Method getService = // getDefaults[29];
serviceManagerClass.getMethod("getService", String.class);
Method tempInterfaceMethod = serviceManagerNativeClass.getMethod("asInterface", IBinder.class);
Binder tmpBinder = new Binder();
tmpBinder.attachInterface(null, "fake");
serviceManagerObject = tempInterfaceMethod.invoke(null, tmpBinder);
IBinder retbinder = (IBinder) getService.invoke(serviceManagerObject, "phone");
Method serviceMethod = telephonyStubClass.getMethod("asInterface", IBinder.class);
telephonyObject = serviceMethod.invoke(null, retbinder);
telephonyEndCall = telephonyClass.getMethod("endCall");
telephonyEndCall.invoke(telephonyObject);
} catch (Exception e) {
e.printStackTrace();
Log.e("GABI",
"FATAL ERROR: could not connect to telephony subsystem");
Log.e("GABI", "Exception object: " + e);
}
}
}
は今、こののみ動作します。 (あなたはstartActivityを呼び出します別のレシーバを使用して起動時にサービスを開始するためにあなたのアプリを呼び出すことができます)それのための permisionsと宣言されています
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name="com.my.CustomReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
関連する問題
- 1. 電話着信時または発信時の録音音声
- 2. iphoneで電話の着信をブロックする方法
- 3. SinchまたはTwilioを使用してランダムな発信および着信通話を作成していますか?
- 4. iOS:着信コールから電話番号を取得する
- 5. アスタリスクの着信コールから電話番号を取得
- 6. アンドロイドで着信中や発信中に電話を録音することは可能ですか
- 7. aidlを使用して着信コールがエミュレータでブロックされていますが、携帯電話で致命的な例外が発生します。
- 8. 着信/着信SMSを傍受して別のデバイスまたは電子メールに送信する方法
- 9. アステリスクAGI - php agiを使用して電話を発信する
- 10. Android 2.1+着信/発信通話の一時停止、完了したら再開
- 11. J2ME:着信呼をブロックする
- 12. アニメーションテーブルビューperformFetchは、iPhoneの電話アプリの不在着信のようです。
- 13. Linuxの着信/発信パケット修正モジュール
- 14. ASP.NETとSMSの送信/電話の発信
- 15. インターネット経由で電話から電話にデータを送信しますか?
- 16. TwilioがSMSを受信して電話をかけます。
- 17. 電話番号を使用して着信国の名前を取得しますか?
- 18. iPhone CFSocket着信/着信メッセージ
- 19. Spring AMQP:すべての着信メッセージと発信メッセージを傍受します
- 20. アスタリスク:PCからの着信と着信
- 21. WebRTCを使用してCrossWalkを使用して電話を発信する
- 22. ActiveMerchant Authorize.net ARBおよびCIM電話機?
- 23. アスタリスクを使用して携帯電話に電話を発信できません。
- 24. インドで着信の電話番号の形式は何ですか
- 25. 着信通話画面をカスタマイズしました
- 26. ベストプラクティス - javamail mime multipart電子メールを送信する - およびGmail
- 27. デフォルトの電話着信音をプログラム的に再生するにはどうすればよいですか?
- 28. 発信者をブロックしないShowDialog
- 29. gwtで着信RPC呼び出しをディスパッチしている間
- 30. 発信SMSをブロックする
contentObserverは、あなたが呼び出しの放送を受け取ると、電話を使用し –
役立ちますISDLコールを終了する。 telephony isdlには、通話を終了するのに役立つ終了通話方法が含まれています。特定の番号の場合は、テレフォニーマネージャーの番号を確認する必要があります –