2014-09-16 1 views
0

Я хочу настроить телефон звонящего вида и показать и показать textView. Как я могу получить доступ к этому представлению и настроить его? или если я не могу получить доступ к этому, что я могу сделать для отображения TextView в этом представлении?Как получить представление, когда телефон звонит

ответ

1

Вам нужно создать приложение, и продлить услугу BroadcastListener в своей деятельности, а также обеспечить расположение, как вы хотите для этой деятельности 1) объявить вещательный приемник в AndroidManifest.xml

 <receiver android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.PHONE_STATE" /> 
      </intent-filter> 
    </receiver> 

также это разрешение

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 

Ваш главный MainActivity.java должно быть что-то вроде этого файла

public class MainActivity extends BroadcastReceiver { 

public void onReceive(Context context, Intent intent) { 

try { 
      // TELEPHONY MANAGER class object to register one listner 
      TelephonyManager tmgr = (TelephonyManager) context 
        .getSystemService(Context.TELEPHONY_SERVICE); 

      //Create Listner 
      MyPhoneStateListener PhoneListener = new MyPhoneStateListener(); 

      // Register listener for LISTEN_CALL_STATE 
      tmgr.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE); 

    } catch (Exception e) { 
     Log.e("Phone Receive Error", " " + e); 
    } 

} 

private class MyPhoneStateListener extends PhoneStateListener { 
    public void onCallStateChanged(int state, String incomingNumber) { 

     Log.d("MyPhoneListener",state+" incoming no:"+incomingNumber); 

     if (state == 1) { 

      String msg = "New Phone Call Event. Incomming Number : "+incomingNumber; 
      int duration = Toast.LENGTH_LONG; 
      Toast toast = Toast.makeText(pcontext, msg, duration); 
      toast.show(); 

     } 
    } 
} 

}

Этот код покажет тост при получении телефонного звонка, вы можете изменить файл макета и отобразить его в соответствии с вашими потребностями.

+0

большое спасибо ... но как я получаю pcontex? – amir

+1

его контекст вашей текущей деятельности, просто замените «pcontext» на «getApplicationContext()» или «YOUR_ACTIVITY_NAME.this», – 2014-09-18 05:45:29

Смежные вопросы