75

いくつかの番号からの通話をブロックしたいので、自分のアプリを書きたいです。では、使用すべき API は何ですか?

基本的には、電話がかかってきたときに通知を受け取りたい、ブロックしたいものかどうかを比較したい、電話を切るかミュートするか、可能であればミュートして録音したい.

4

5 に答える 5

65

ああ、神様!!!はい、できます!!! 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 が更新されます!

于 2010-06-18T18:15:31.193 に答える
4

android-N では、この機能が含まれています。Android Nの番号ブロックの更新を確認してください

Android N は、プラットフォームで番号ブロックをサポートするようになり、フレームワーク API を提供して、サービス プロバイダがブロック番号リストを維持できるようにします。デフォルトの SMS アプリ、デフォルトの電話アプリ、およびプロバイダー アプリは、ブロックされた番号のリストから読み書きできます。リストは他のアプリからアクセスできません。

の利点は次のとおりです。

  1. 通話でブロックされた番号は、テキストでもブロックされます
  2. ブロックされた番号は、バックアップと復元機能を使用して、リセットとデバイス間で保持できます
  3. 複数のアプリで同じブロック番号リストを使用できます

詳細については、次を参照してください。android.provider.BlockedNumberContract

既存のプロジェクトを更新します。

Android N プラットフォームに対してアプリをコンパイルするには、Java 8 Developer Kit (JDK 8)を使用する必要があります。Android Studio 2.1でいくつかのツールを使用するには、 Java 8 ランタイム環境 (JRE 8)をインストールする必要があります。

モジュールのbuild.gradleファイルを開き、次のように値を更新します。

android {
  compileSdkVersion 'android-N'
  buildToolsVersion 24.0.0 rc1
  ...

  defaultConfig {
     minSdkVersion 'N'
     targetSdkVersion 'N'
     ...
  }
  ...
}
于 2016-03-10T09:47:21.327 に答える
4

それは可能であり、自分でコーディングする必要はありません。

incomingNumber が空の文字列に等しい場合は、呼び出し音の音量をゼロに、振動をなしに設定するだけです。それでおしまい ...

Android Market のアプリケーション Nostalk を使用すると、これが完了します。試してみてください...

于 2009-09-20T10:12:17.890 に答える
3

連絡先の特定の番号をボイスメールにリダイレクトするだけです。それはすでにサポートされています。

それ以外の場合は、「連絡先」のドキュメントが探し始めるのに適していると思います。

于 2009-07-05T06:25:58.570 に答える