2012-02-22 3 views
5

ダイヤルで##のようなコードをユーザが入力したときにプロジェクトを実行する機能を追加する必要があります(可能な場合)。私はそれが可能であるかどうかはわかりません。現在のところ、私はアプリケーションのフォルダからアプリケーションの昼食を起動するが、ちょうど楽しみのために私はコードで昼食を取ることができますか?Android、ダイヤラーからアプリを実行することはできますか?

答えて

6

ダイヤラでアプリケーションアクティビティクラスを開始することはできますが、アプリはバックグラウンドで実行する必要があります。そのためには、BroadcastReceiverに拡張されたクラスを実装する必要があります。この参照コードに従ってください。

public class Example extends BroadcastReceiver 
{ 

    @Override 
    public void onReceive(Context context, final Intent intent) { 

     if (intent.getAction().equals(android.intent.action.NEW_OUTGOING_CALL)) { 
     String phoneNumber = intent.getExtras().getString(android.intent.extra.PHONE_NUMBER); 

     if(phoneNumber.equals("#1234#")) { 
      Intent intent1 = new Intent(context , YourActivity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent1); 
     } 

     } 

    } 

} 
+0

私はこれを使用しましたが、私のアプリを開いた後も発信を試みます。どのようにして実際にダイヤル番号を呼び出さないようにするには? – Jayce

1

Priyankの回答が正しいです。私はちょうど実際に私は新しい午前テントクラスのコードで

@Override 
public void onReceive(Context context, final Intent intent) { 
    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){ 
     String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER); 

     if(phoneNumber.equals("#1234#")){ 
      Intent intent1 = new Intent(context, YourActivity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent1); 
     } 

    } 
} 
+0

私はこれを使用しましたが、それはまた、私のアプリを開いた後に発信呼び出しをしようとします。どのようにして実際にダイヤル番号を呼び出さないようにするには? – Jayce

0
@Override 
public void onReceive(Context context, final Intent intent) { 

    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) { 
     String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER); 

     if (phoneNumber.equals("#1234#")) { 
      Intent intent1 = new Intent(context, YourActivity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent1); 
      setResultData(null); 
     } 

    } 

} 
+0

ようこそ、あなたのコードを説明するのをためらうことはありません。 –

0
@Override 
public void onReceive(Context context, final Intent intent) { 
    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){ 
     String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER); 

     if(phoneNumber.equals("#1234#")){ 
      Intent intent1 = new Intent(context, YourActivity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent1); 
      setResultData(null); 
     } 

    } 
} 
+1

同じ回答を2回投稿しました。1つを削除してください –

0

をいくつかの修正を指摘したかったです。私は疑問があります。私はこのコードを置く必要があります:

public class Example extends BroadcastReceiver 
{  
    @Override 
    public void onReceive(Context context, final Intent intent) { 

     if (intent.getAction().equals(android.intent.action.NEW_OUTGOING_CALL)) { 
     String phoneNumber = intent.getExtras().getString(android.intent.extra.PHONE_NUMBER); 

     if(phoneNumber.equals("#1234#")) { 
      Intent intent1 = new Intent(context , YourActivity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent1); 
     } 

     } 

    }  
} 
+0

ようこそ! [ツアー](http://stackoverflow.com/tour)を見て回り、[ヘルプセンター](http://stackoverflow.com/help)、特に[どのように私に質問しますか良い質問?](http://stackoverflow.com/help/how-to-ask)と[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)。その2番目のリンクから:「宿題の助けを求める質問には、問題を解決するために今まで行ってきた作業の概要と、それを解決している困難の説明が含まれていなければなりません。また、画像としてではなく、**をテキスト**として提供する必要があります。 –

関連する問題