Ricevitore Broadcast Android per chiamata non funzionante? (Marshmallow)

Sto provando a mostrare il pane tostato dopo aver ricevuto una chiamata, ho implementato tutte le cose necessarie per registrare la ricevente di trasmissione, ma non sta visualizzando il pane tostato. Sto cercando di eseguire questo programma sul dispositivo Marshmallow

MyCallReceiver.java –

  • Dettagli del master utilizzando ContentResolver.applyBatch ()?
  • Sto cercando di bloccare facebook sul browser di sistema
  • Come get il nome del file e il path reale del documento di unità Google?
  • È ansible leggere la cronologia dei costi di chiamata dal dialogo sollevato dopo aver terminato la chiamata prepagata?
  • Editing audio in Android
  • Qual è il modo preferito per utilizzare l'AWS (in particolare S3) dalle applicazioni per dispositivi mobili?
  • package com.suhas.callreceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.TelephonyManager; import android.util.Log; import android.widget.Toast; public class MyCallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) { // This code will execute when the phone has an incoming call // get the phone number String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); Toast.makeText(context, "Call from:" +incomingNumber, Toast.LENGTH_LONG).show(); Log.d("MyTrack call", "call receive"); } else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals( TelephonyManager.EXTRA_STATE_IDLE)) { Toast.makeText(context, "Detected call hangup event", Toast.LENGTH_LONG).show(); } else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals( TelephonyManager.EXTRA_STATE_OFFHOOK)) { // This code will execute when the call is disconnected } } } 

    AndroidManifest.xml –

     <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.suhas.msgmanager"> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <application android:allowBackup="true" android:icon="@mipmap/msgis" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.suhas.msgmanager.MyDialog" android:launchMode="singleTask" android:theme="@android:style/Theme.Translucent" /> <service android:name="com.example.suhas.msgmanager.ChatHeadService"></service> <receiver android:name=".MyCallReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> <activity android:name=".AddMessageActivity"> </activity> </application> </manifest> 

    Ho una MainActivity con un'etichetta di default che dice Hello World .

  • Consente al telefono di vibrarsi quando lo schermo si spegne
  • Frammenti di metodo onClick in elemento di frammento
  • IllegalArgumentException: colonna non valida
  • Riutilizzare la barra d'azione in tutte le attività di app
  • Come caricare un file WAV utilizzando URLConnection
  • Android L 5.0 e libusb 1.0.9 - nessun permesso?
  • 2 Solutions collect form web for “Ricevitore Broadcast Android per chiamata non funzionante? (Marshmallow)”

    In caso di versione Marshmallow, abbiamo un concetto chiamato permesso di runtime che deve essere fatto all'interno dell'Aattività per lavorare con l'authorization. L'authorization di runtime fornisce un modo per chiedere all'utente un'authorization particolare durante il runtime mentre esegue l'attività per la prima volta.

    Sono due cose da specificare:

    // specificare un numero costante per l'authorization

      public final static int MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 11; 

    // Specificare il seguente bit di codice nel metodo OnCreate

      @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Here, thisActivity is the current activity if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) { } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSIONS_REQUEST_READ_PHONE_STATE); } } } 

    // specificare questo metodo che apre la window di popup chiedendo all'utente l'authorization a runtime

     @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_READ_PHONE_STATE: { // If request is cancelled, the result arrayss are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { } else { } return; } } } 

    questo fornirà un modo per lavorare con i dispositivi Marshmallow

    Hai ricevuto il nome del pacchetto errato nel ricevitore.

    Dovresti definire il ricevitore come segue:

     <receiver android:name="com.suhas.callreceiver.MyCallReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.