12

Intent.Action クラスを使用しようとしています。Intent.ACTION_DIALACTION_VIEW を使用して URL を表示する方法は知っていますが、アプリケーションの起動時に電話番号を使用したいと考えていました。ドキュメントには、URIを文字列に解析してから、それをインテントに追加する必要があると書かれています。

Uri call = Uri.parse("7777777777");             
Intent surf = new Intent(Intent.ACTION_DIAL, call); 
startActivity(surf);

これは機能しません。次のようなエラー メッセージが表示されます。

残念ながら、プロジェクトは停止しました。私はコードをデバッグしようとしましたが、これを行うだけで何が間違っているのかわからないインテント行を指しているように見え、ダイヤラーが起動します。

//Uri call = Uri.parse("7777777777");               
Intent surf = new Intent(Intent.ACTION_DIAL);   
startActivity(surf);
4

9 に答える 9

18

ダイヤラー アプリを開くだけにするには (ユーザーはダイヤラー アプリ内の通話ボタンを押す必要があります。追加のアクセス許可は必要ありません)、次を使用します。

String number = "7777777777";
Uri call = Uri.parse("tel:" + number);             
Intent surf = new Intent(Intent.ACTION_DIAL, call); 
startActivity(surf);

ダイヤラ アプリを開いて自動的に電話をかけるには (android.permission.CALL_PHONE が必要)、次を使用します。

String number = "7777777777";
Uri call = Uri.parse("tel:" + number);             
Intent surf = new Intent(Intent.ACTION_CALL, call); 
startActivity(surf);
于 2014-12-17T09:46:56.130 に答える
4

これを試して

String url="tel:777777777"
if (url.startsWith("tel:")) { 
  Intent intent = new Intent(Intent.ACTION_DIAL,
  Uri.parse(url)); 
  startActivity(intent);
}

これを AndroidManifest.xml ファイルに追加します

<uses-permission android:name="android.permission.CALL_PHONE" />
于 2015-01-03T11:56:15.887 に答える
4

これも試してみてください

Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phno);
startActivity(intent);

Android マニフェスト

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
于 2015-01-03T12:27:56.553 に答える
2

これを試して :

String toCall = "tel:" + number.getText().toString();

startActivity(new Intent(Intent.ACTION_DIAL,

Uri.parse(toCall)));
于 2015-08-12T13:21:02.807 に答える
2

もう 1 つの方法は、後で呼び出されるようにPendingIntentを作成することです。これは、ユーザーを通知アクションから直接電話にリダイレクトする場合に特に便利です。

String number = "551191111113";
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" +number));
PendingIntent pendingIntentForCall = PendingIntent.getActivity(mContext, 0 /* Request code */, intent,PendingIntent.FLAG_ONE_SHOT);

次のように通知で使用できます。

        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mContext)
                .setContentTitle(title)
                .setContentText(message)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
                .setTicker(tickerText)
                .setColor(Color.BLACK)
                .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_directions_bus_white_48dp))
                .setSmallIcon(R.mipmap.ic_directions_bus_white_24dp)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .addAction(new NotificationCompat.Action(R.mipmap.ic_directions_bus_white_24dp,"Call to " + number,pendingIntentForCall));
于 2016-06-18T14:54:48.703 に答える
1

追加した場合

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

お使いのアプリケーションの電話で通話の許可を確認してください。

于 2016-03-30T06:40:32.350 に答える