как получить набранный номер мобильного телефона в моем приложении? [Дубликат]

Возможный дубликат:
запуск моего приложения при наборе номера

Я хотел бы получить номер мобильного телефона из номеронабирателя, набранного пользователем в моем приложении для Android. Я реализовал приложение следующим образом:

 ((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
             startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:")));

        }
    });

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

 Boris Strandjev30 дек. 2012 г., 11:00
Я не согласен с закрытием этой темы - «дубликат» вообще не обсуждает получение номера телефона. Кроме того, ответ там намного ниже. Если вы хотите закрыть тему, закройте другую.
 Atul O Holic21 мая 2014 г., 12:23
Я тоже пытаюсь что-то вроде этого. Но я хочу получить номер до того, как будет сделан вызов, как только что-то будет набрано в приложении для набора номера. Может ли тело помочь?

Ответы на вопрос(2)

Зарегистрируйте BroadcastReceiver как это в файле манифеста:

    <!-- DIAL Receiver -->
    <receiver
        android:exported="true"
        android:name="receivers.DialBroadcastReceiver" >
        <intent-filter >
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
        </intent-filter>
    </receiver>

Вам необходимо разрешение для NEW_OUTGOING_CALL:

<!-- OUTGOING CALL PERMISSION-->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

В конце концов, вы можете получить трансляцию и получить набранный номер следующим образом:

public class DialBroadcastReceiver extends BroadcastReceiver {

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

    Log.v("DileBroadCastReceiver","In onReceive()");

    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
         String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

         Log.v("DialBroadcast Receiver","Number is: "+number);

    }

}

}

Решение Вопроса

Я получил свое решение как следующий код

public class OutGoingCall extends BroadcastReceiver {

   @Override
   public void onReceive(final Context context, final Intent intent) 
   {
         // get phone number from bundle
         String phoneNumber = intent.getExtras().getString(OutGoingCall.INTENT_PHONE_NUMBER);

   }
}
 koteswara D K07 сент. 2017 г., 07:08
Вы можете сделать это также Intent callIntent = new Intent (Intent.ACTION_CALL); callIntent.setData (Uri.parse ( "тела:" + pnmu)); context.startActivity (callIntent); для отправки номера через переменную
 Muhammad Usman Ghani17 мар. 2014 г., 10:19
Intent i = new Intent (Intent.ACTION_DIAL, Uri.parse ("tel:" + phoneno));

Ваш ответ на вопрос