2013-01-01 1 views
1

, 그것은 내가 자바를 시도 할 때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 객체를 생성 할 수 있도록하는, 잘 작동 그러나 ? 이미 시도했지만 아무 일도 일어나지 않습니다. 프로그래밍 방식으로 IntentFilter를 등록하려면 어떻게해야합니까? 저는 여전히 Android 프로그래밍의 초보자입니다. 나에게 내가 어떤 번호로 전화를 걸하려고하고이 코드를 사용할 수있는 특정 번호로 전화를 걸 생각이

+0

필터를 만들었지 만 사용자가 아무 것도하지 않았습니다. 필터에 대한 리스너를 등록해야합니다. 필터와 일치하는 의도가있을 때 당신은 무엇을하고 싶습니까? 매니페스트에 넣은 부분을 표시하고 코드에서 이와 동일한 작업을 수행하는 방법을 보여줄 수 있습니다. –

답변

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에서는 Manifest가 아닙니다.) 그건 정확히 물었습니다. – Arfian

+0

ACTION_CALL 대신에 액션을 사용할 수도 있습니다. –