2016-03-30 12 views
-2

Ich habe eine Anwendung, die Google Places API verwendet. Sobald ich auf einen Ort klicke, wird der Name des Unternehmens, die Adresse und die Nummer an MainActivity zurückgegeben. Wenn ich auf die Nummer klicke, kann ich den Dialer öffnen, aber ich kann nicht die Nummer, die auf dem MainActivity zurückgegeben wird, in dem Dialer abrufen. Irgendwelche Ideen, wie ich das machen könnte. DankSo öffnen Sie Dialer am Telefon mit einer ausgewählten Nummer in Android

My-Code ist wie folgt

MainActivity

private TextView mName; 
    private TextView mAddress; 
    private TextView mNumber; 
    private static final LatLngBounds Sligo = new LatLngBounds(
      new LatLng(54.27, -8.47), new LatLng(54.27, -8.47)); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.content_main); 
     mName = (TextView) findViewById(R.id.textView); 
     mAddress = (TextView) findViewById(R.id.textView2); 
     mAttributions = (TextView) findViewById(R.id.textView3); 
     mNumber = (TextView) findViewById(R.id.textView4); 
     Button pickerButton = (Button) findViewById(R.id.pickerButton); 

     pickerButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       try { 
        PlacePicker.IntentBuilder intentBuilder = 
          new PlacePicker.IntentBuilder(); 
        intentBuilder.setLatLngBounds(Sligo); 


        List<Integer> filterTypes = new ArrayList<Integer>(); 
        filterTypes.add(Place.TYPE_CAR_REPAIR); 


        Intent intent = intentBuilder.build(MainActivity.this); 
        startActivityForResult(intent, PLACE_PICKER_REQUEST); 
       } catch (GooglePlayServicesRepairableException 
         | GooglePlayServicesNotAvailableException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    @Override 
    protected void onActivityResult(int requestCode, 
            int resultCode, Intent data) { 

     if (requestCode == PLACE_PICKER_REQUEST 
       && resultCode == Activity.RESULT_OK) { 

      final Place place = PlacePicker.getPlace(this, data); 
      final CharSequence name = place.getName(); 
      final CharSequence address = place.getAddress(); 
      final CharSequence formatted_phone_number = place.getPhoneNumber(); 

      // final CharSequence car = place.TYPE_CAR_REPAIR(); 
      //public abstract List<Integer> getTypeFilter(place.TYPE_CAR_REPAIR); 
      String attributions = (String) place.getAttributions(); 
      if (attributions == null) { 
       attributions = ""; 
      } 

      mName.setText(name); 
      mAddress.setText(address); 
      mAttributions.setText(Html.fromHtml(attributions)); 
      mNumber.setText(formatted_phone_number); 



     } else { 
      super.onActivityResult(requestCode, resultCode, data); 
     } 

onClick Ereignis

public void onClickNumber(View arg) 
    { 
     Intent intent = new Intent(Intent.ACTION_DIAL); 

     startActivity(intent); 

    } 

Die Zahl am unteren Rand des Bildschirms ist enter image description here

+0

@MikeM Versuchen. Du siehst die Sache ist, es könnte wirklich jede Zahl sein, die nur ein Beispiel ist, also kann ich keine bestimmte Nummer festlegen. Ich kann keine Antwort finden, die mich mit der Nummer, die ich gewählt habe, zum Dialer bringe. –

+0

Benutze 'formatted_phone_number', du bekommst' onActivityResult() '. –

Antwort

9

Diese

String phone = mNumber.getText().toString(); 
Intent phoneIntent = new Intent(Intent.ACTION_DIAL, Uri.fromParts(
"tel", phone, null)); 
startActivity(phoneIntent); 
+0

Dies funktioniert dank –

+0

immer wc @CraigGallagher –

2

bereits.

String number = "494498498"; 
    Intent intent = new Intent(Intent.ACTION_DIAL); 
    intent.setData(Uri.parse("tel:" +number)); 
    startActivity(intent); 
+0

Sie sehen die Sache ist, es könnte wirklich jede Zahl sein, die nur ein Beispiel ist, so kann ich keine bestimmte Nummer –

+0

setzen @CraigGallagher können Sie nicht Ihre Nummer zu Nummer String übergeben. Was ist das Problem dabei –

+0

können Sie eine beliebige Anzahl einstellen. Wie bekomme deine Nummer von TextView und setze sie wie intent.setData (Uri.parse ("tel:" + yourTextView.getText(). toString())); –

Verwandte Themen