2013-01-01 162 views
1

當我嘗試清單文件意圖過濾器,它的工作好 但是,當我嘗試它的Java這使我創造一個IntentFilter的對象,它沒有工作如何以編程方式使用IntentFilter?

public class MainActivity extends Activity { 

Intent dialIntent; 
IntentFilter filter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button btnDial = (Button)findViewById(R.id.btnDial); 
    final EditText txtNumber = (EditText)findViewById(R.id.txtNumber); 
    btnDial.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+(txtNumber.getText().toString()))); 
      Uri data = dialIntent.getData(); 

      filter = new IntentFilter(); 
      filter.addAction(dialIntent.getAction()); 
      filter.addCategory(Intent.CATEGORY_DEFAULT); 
      filter.addDataScheme(data.getScheme()); 

      startActivity(dialIntent); 
     } 
    }); 
} 
} 

難道只有在廣播接收器有效? 我已經嘗試過但沒有任何反應。 如何以編程方式註冊IntentFilter? 我還是Android編程的初學者。 請給我這個

+0

您創建的過濾器,但沒有用它做任何事情。您需要註冊過濾器的偵聽器。當存在與過濾器匹配的Intent時,您希望發生什麼?顯示你的清單中的部分,我們可以告訴你如何在代碼中做同樣的事情。 –

回答

0

我認爲你正在嘗試撥任何號碼,撥打一個特定號碼,您可以使用此代碼一些解釋:

Intent intent = new Intent(Intent.ACTION_CALL); 
intent.setData(Uri.parse("tel:" + YOUR_NUMBER)); 
startActivity(intent); 

沒有必要使用意圖過濾器。

雖然你可以看看這個鏈接...可能會幫助你。

cant 「addAction」 to IntentFilter in android

+0

感謝您的回答。 我正在使用Intent.ACTION_CALL只是一個例子。 我已經嘗試通過清單的意圖過濾器,它運行良好,有一個彈出如何在單擊事件後運行代碼。 但我不知道如何以編程方式註冊IntentFilter(在Java中,不是清單) 這正是我問 – Arfian

+0

您可以使用您的操作代替ACTION_CALL。 –

相關問題