このアプリがインストールされていることを第三者に知られないように、アプリケーションのリストから自分のアプリを非表示にしたいと考えています。
これは次の方法で実現できることがわかりました: アプリケーションをアプリケーション ランチャーから隠したい場合はandroid.intent.category.LAUNCHER
、どのアクティビティにも含めないでください。
私はこれを試してみましたが、動作しています。ここで、アプリを起動するためのショートカットを定義する必要があります。
発信用のブロードキャストレシーバーでこれを達成しようとしています。SO 私は、onreceive
ダイヤルされた番号 = 私のパターンであるかどうかを確認してから、アクティビティを開始します
ここでいくつか質問があります
これは正しいやり方ですか
以下のレシーバーのコードを参照してください。ここで私のレシーバーが呼び出されますが、そのシステムアプリとともに、「番号ダイヤル」を処理するアプリも呼び出されます。そのため、パターンをダイヤルしても、アクティビティを表示した後、電話をかけます。ダイヤルした番号が自分のパターンに一致する場合は、発信を停止したい。どうすればこれを達成できますか
新しいタスクとして活動を開始しています。アプリを初めて実行すると、アクティビティ画面が表示されます。しかし、もう一度ダイヤルすると、前面に表示されません。どうすればこれを達成できますか。前の質問を解決すれば、これはうまくいくと思います。
public class OutgoingCallInterceptor extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String originalNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); this.setResultData("0123456789"); final String newNumber = this.getResultData(); String msg = "Intercepted outgoing call. Old number " + originalNumber + ", new number " + newNumber; Toast.makeText(context, msg, Toast.LENGTH_LONG).show(); Intent intent1 = new Intent(context,ShowMessageActivity.class); intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent1); } }
メニフェストファイル
<application android:icon="@drawable/icon" android:label="Outgoing Call Interceptor">
<receiver android:name="OutgoingCallInterceptor">
<intent-filter android:priority="1">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"></action>
</intent-filter>
</receiver>
<activity android:name="ShowMessageActivity" ></activity>
</application>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>