Androidで偽のコールブロードキャストを送信する方法
-
27-10-2019 - |
質問
私は、着信をシミュレートするために放送を送信しようとしています。 AndroidManifest.xmlファイルに許可を追加しました。
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
プログラムを実行しようとすると、電話が再起動します。(エミュレータも)。
Intent intent = new Intent();
intent.setAction("android.intent.action.PHONE_STATE");
intent.putExtra(TelephonyManager.EXTRA_STATE, TelephonyManager.CALL_STATE_RINGING);
intent.putExtra("EXTRA_INCOMING_NUMBER", "923982398");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendBroadcast(intent);
解決
ドキュメントで何も見つからないので間違っているかもしれませんが、コールリンギング放送を「スプーフィング」することはできないと思います。ほぼ間違いなく「システムのみ」として予約されています。
考えてみてください - アプリがこれを行うことができれば、それは単に悪意のあるものではなく「いたずら」をもたらすかもしれませんが、それは私の電話で起こりたいことではありません。
テスト目的で使用する独自の「電話リンギング」アクションを作成し、BroadcastReceiverにそれを聞かせてもらいます。アプリをリリースするようになったら、BroadCastReceiverの意図フィルターを変更して実際のフィルターを聞くだけです。
他のヒント
Play Storeから偽の発信者アプリをいくつかダウンロードしてテストしました。このアプリは、ロック画面の上部に事前に言及されたGUIを表示し、ContentResolverの挿入方法を使用して通話ログにエントリを追加するイベントを提起することがわかりました。
アプリは、InBuild Calling(Broadcast)メカニズムを使用しません。画面上のGUIを偽造し、デフォルトの着信音/振動を再生します。
私の知る限り、私はコールリンギング放送を偽造することは不可能だと思います
所属していません StackOverflow