2017-05-16 9 views
0

私のプロジェクトでは、私はマシュマロで自動的に電話を受ける必要があります。私は、インターネットを参照し、それでも私はここで解決android(Marshmallow)で自動的に電話に応答する

を持っていないコードです:マニフェストで

public void acceptCall() { 
    Toast.makeText(context,"inside accept call",Toast.LENGTH_LONG).show(); 
    Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON); 
    buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, 
      new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); 
    context.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED"); 
} 

が許可:

私もマシュマロのランタイム許可を行っています。

どこが間違っていますか?

+0

このためには、マシュマロの許可を追加する必要があります。 –

+0

私はそれをしました。 –

答えて

0

まず、何かをする前にcall_phoneの許可をリクエストしてください。安全面にいること。 (マニフェストにこの権限を置くことを忘れないでください)チェックのため

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

とJavaのコードは次のようになります。

int checkPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE); 
if (checkPermission != PackageManager.PERMISSION_GRANTED) { 
      ActivityCompat.requestPermissions(
        this, 
        new String[]{Manifest.permission.CALL_PHONE}, 
        REQUEST_CALL_PHONE); 
     } else { 
      customDialog(CallChoosyActivity.this); 
     } 
+0

ここでは、marshmallow..and manifestファイルのアクセス許可に必要なランタイムアクセス権を与えています。これもやっています...自動的にコールを受信するコードは何ですか? –

+0

何かを見つけましたか?私は2日以来、まだコードが動作していないので、解決策を見つけようとしています。 –

0

あなたは着信呼び出しをリッスンする電話マネージャを使用する必要がある、あなたそれについてもっと読むことができますhere

public void onReceive(final Context context, Intent intent) 
    { 
     TelephonyManager telephonyManager = null; 
     PhoneStateListener listener = new PhoneStateListener() 
     { 
      public void onCallStateChanged(int state, String incomingNumber) 
      { 
       switch (state) 
       { 
       case TelephonyManager.CALL_STATE_IDLE: 
       // call ended 
        break; 
       case TelephonyManager.CALL_STATE_OFFHOOK: 
        // call picked 
        break; 
       case TelephonyManager.CALL_STATE_RINGING: 
        // call is ringing now 
try { 
telephonyManager.getClass().getMethod("answerRingingCall").invoke(telephonyManager); 
} catch (Exception e) { 

} 
        break; 
       } 
      } 
     }; 
     // Register the listener with the telephony manager 
     telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE); 
+0

動作していないため、通話の状態のみを確認できますが、自動的に受け付けることはできません。 –

関連する問題