ブロックまたは許可リストに異なる電話番号を設定できるアプリを作成したいと思います。特定の電話番号のみをブロックしたり許可したりすることは可能ですか?もしそうなら、どうすればこのことをやりますか?事前に感謝、ジョナサン。着信および発信電話をブロックしていますか?
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. 私はAndroidで着信電話を検出しようとしています
- 4. SinchまたはTwilioを使用してランダムな発信および着信通話を作成していますか?
- 5. Twilio - 発信元電話番号xxxは有効なSMS対応着信電話ではありません
- 6. アンドロイド携帯電話の着信UDPポート
- 7. Windows 8.1は着信電話を検出します
- 8. Twilio発信電話会議
- 9. iOS:着信コールから電話番号を取得する
- 10. VNET上のApp Servicesへの着信および発信トラフィックを制御できますか?
- 11. 電話番号が有効ではないSMS対応着信電話番号
- 12. 固定電話から発信者IDを取得し、IOSおよびAndroidデバイスで使用する
- 13. アスタリスクの着信コールから電話番号を取得
- 14. アンドロイドで着信中や発信中に電話を録音することは可能ですか
- 15. aidlを使用して着信コールがエミュレータでブロックされていますが、携帯電話で致命的な例外が発生します。
- 16. 着信メールからの添付ファイルの抽出(およびアップロード)
- 17. SMSでHTMLを送信する(およびHTMLで電話を読む)
- 18. 着信/着信SMSを傍受して別のデバイスまたは電子メールに送信する方法
- 19. twillioの着信発信者IDと少し話した後、着信をメインエージェントに転送するにはどうすればいいですか?
- 20. アステリスクAGI - php agiを使用して電話を発信する
- 21. Twilio iOSクライアントでの発信電話
- 22. Android 2.1+着信/発信通話の一時停止、完了したら再開
- 23. J2ME:着信呼をブロックする
- 24. 着信電話からの発信者をWebhookリクエストから取得するにはどうすればよいですか?
- 25. アスタリスクを実行して電話の応答と発信のコール
- 26. アニメーションテーブルビューperformFetchは、iPhoneの電話アプリの不在着信のようです。
- 27. 着用から電話にメッセージを送信するときにメッセージが受信されない[MessageAPI]
- 28. インターネット経由で電話から電話にデータを送信しますか?
- 29. ASP.NETとSMSの送信/電話の発信
- 30. Twilio発信と着信SIP URIとJava
contentObserverは、あなたが呼び出しの放送を受け取ると、電話を使用し –
役立ちますISDLコールを終了する。 telephony isdlには、通話を終了するのに役立つ終了通話方法が含まれています。特定の番号の場合は、テレフォニーマネージャーの番号を確認する必要があります –