私は自分のアプリを書きたいので、少数の番号からの呼び出しをブロックしたい。それで、私が使用すべきAPIは何ですか?
基本的には、電話がかかってきたときに通知を受けたい、ブロックしたい場合は番号を比較したい、電話を切ったりミュートしたり、できればミュートして録音したい。
ああ、神様!!!はい、WEできます!!!調査と発見に24時間を費やした後、私は自殺するつもりでした...しかし、私は「新鮮な」解決策を見つけました!
// "cheat" with Java reflection to gain access to TelephonyManager's
// ITelephony getter
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony)m.invoke(tm);
コール制御ソフトウェアを開発したい何百人もの人々すべてが この開始点
プロジェクトがあります。そして、重要なコメント(およびクレジット)があります
簡単に:aidlファイルのコピー、マニフェストへのアクセス許可の追加、テレフォニー管理のソースのコピーと貼り付け)))
あなたのためのいくつかの詳細情報。 ATルート化されている場合にのみ送信できるコマンド。システムプロセスを強制終了してコマンドを送信できますが、電話が通話を送受信できるようにするには再起動が必要です=)))
私は非常に幸せです=)今、私のShake2MuteCallは更新を取得します!
それは可能であり、自分でコーディングする必要はありません。
IncomingNumberが空の文字列に等しい場合、着信音の音量をゼロに設定し、振動をなしに設定するだけです。それでおしまい ...
Android Market。
Android-Nでは、この機能が含まれています。 check Number-blocking update for Android N
Android Nはプラットフォームで番号ブロックをサポートし、サービスプロバイダーがブロック番号リストを維持できるようにするフレームワークAPIを提供します。デフォルトのSMSアプリ、デフォルトの電話アプリ、およびプロバイダーアプリは、ブロック番号リストの読み取りと書き込みが可能です。他のアプリはリストにアクセスできません。
利点は次のとおりです。
詳細については、Android.provider.BlockedNumberContract
既存のプロジェクトを更新します。
Android Nプラットフォームに対してアプリをコンパイルするには、Java 8 Developer Kit(JDK 8)を使用する必要があります、およびAndroid Studio 2.1でいくつかのツールを使用するには、Java 8 Runtime Environment(JRE 8)。
モジュールのbuild.gradleファイルを開き、次のように値を更新します。
Android {
compileSdkVersion 'Android-N'
buildToolsVersion 24.0.0 rc1
...
defaultConfig {
minSdkVersion 'N'
targetSdkVersion 'N'
...
}
...
}
連絡先の特定の番号をボイスメールにリダイレクトできます。それはすでにサポートされています。
そうでない場合は、「連絡先」のドキュメントを参照してください。
あなたは電話イベントを聞くことでそれを行うことができます。 PHONE_STATEおよびNEW_OUTGOING_CALLへのBroadcastReceiverを用意することにより、それを行います。そこで電話番号を見つけます。
次に、Android Pからのみ動作することが保証されているため、通話を終了することを決定するとき、これは少しトリッキーです。 here 。