2017-12-20 4 views
1

이 코드는 작업에서 완벽하게 작동하지만 클래스에서 사용할 때 작동하지 않습니다. 누구든지 문제를 해결하는 방법을 알고 있습니까? 미리 감사드립니다.비 활동에서 전화를 거는 방법은 무엇입니까?

Public class Example 
{ 
    Intent callIntent= new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+"0554515514"));  
    context.startActivity(callIntent); 
} 
+0

작동하지 않는다는 의미입니까? 컨텍스트를 통과 시켰습니까? – ABDevelopers

+0

잘 작동하는 코드를 표시 할 수 있습니까? – NonCreature0714

+0

컨텍스트를 @Nadav – Jorgesys

답변

0

이 경우 클래스에 필요하다 context를 보낼 수 있으며, 텐트를 엽니 방법 startActivity()와 함께 사용.

Activity이 아닌 클래스가있는 경우 클래스 생성자를 통해 컨텍스트를 보낼 수 있습니다.

private Context context; 

    public myClass(Context context) { 
     this.context = context; 

    } 

는 그런 의도를 열려면이 컨텍스트를 사용 :이 아닌 응용 프로그램 클래스의 일부 활동과 통신 할 때

public makeCall(){ 
    Intent callIntent= new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+"0554515514"));   
    context.startActivity(callIntent); 
    } 
+0

활동이없는 특정 메시지가 수신되면 초기화를 위해 전화가 필요합니다. – Nadav

+1

@ Nadav 어디서 ​​얻었습니까? BroadcastReceiver? 이 경우 수신자는 사용할 수있는 컨텍스트를 전달받습니다. 서비스? 그런 다음 컨텍스트 인 서비스를 사용하십시오. Android에서 실행중인 모든 코드는 일정 수준의 컨텍스트와 연결되어 있습니다. –

+0

클래스를 보여주고 싶지만 설명이 너무 길다는 것을 알려줍니다.이 코드를 여기에 어떻게 추가 할 수 있습니까? – Nadav

0

을 단순히 호출 클래스 사이의 의사 소통으로 인터페이스의 도움을 활동. 예

interface Communicator{ 
void startCall(); 
} 

Public class Example{ 
    public void someMethodToBeCalled(){ 
    Communicator communicator = new MainActivity(); 
    communicator.startCall(); 
    } 
} 

class MainActivity extends AppCompactActivity implements Communicator{ 

    void startCall() { 
    Intent callIntent= new Intent 
    (Intent.ACTION_CALL,Uri.parse("tel:"+"0554515514"));   
    context.startActivity(callIntent); 
    } 
} 

커뮤니케이터 클래스의 인스턴스를하는 동안, 당신이해야 할 것을 관찰

,

Communicator communicator = new MainActivity(); 

당신이 startCall() 활동에 communicator.startCall을 (구현하는 바와 같이) MainActivity의 트리거 startCall 메소드.

관련 문제