2013-04-03 1 views
0

J'ai lu beaucoup de messages de personnes qui tentent d'expliquer ho pour ouvrir le journal des appels sur Android et permettre à l'utilisateur de choisir un élément, mais pas de leur travail. Est-ce que quelqu'un a un bon échantillon de travail?Ouvrir CllLog sur Android et choisir un numéro

Répondre

1

Le code suivant Snippet fonctionne parfaitement bien avec moi

Intent showCallLog = new Intent(); 
showCallLog.setAction(Intent.ACTION_VIEW); 
showCallLog.setType(CallLog.Calls.CONTENT_TYPE); 
context.startActivity(showCallLog); 
+0

L'action dont j'ai besoin est PICK et non visible, je veux que l'utilisateur choisisse une entrée dans le journal des appels. – rbd

+0

En utilisant cet écran, vous obtiendrez l'écran du journal d'appel natif et vous pourrez effectuer des actions comme cliquer sur un contact particulier, etc. –

+1

Le journal des appels natifs sera affiché, mais je dois savoir sur quelle entrée l'utilisateur a cliqué. Comment obtenez-vous cette information? – rbd

0

Je suis arrivé ce travail, en utilisant ma propre version. J'ai utilisé une boîte de dialogue et j'ai passé le curseur sur le journal des appels. Voici la fonction:

public void getCallLog() { 

    String[] callLogFields = { android.provider.CallLog.Calls._ID, 
      android.provider.CallLog.Calls.NUMBER, 
      android.provider.CallLog.Calls.CACHED_NAME /* im not using the name but you can*/}; 
    String viaOrder = android.provider.CallLog.Calls.DATE + " DESC"; 
    String WHERE = android.provider.CallLog.Calls.NUMBER + " >0"; /*filter out private/unknown numbers */ 

    final Cursor callLog_cursor = getActivity().getContentResolver().query(
      android.provider.CallLog.Calls.CONTENT_URI, callLogFields, 
      WHERE, null, viaOrder); 

    AlertDialog.Builder myversionOfCallLog = new AlertDialog.Builder(
      getActivity()); 

    android.content.DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialogInterface, int item) { 
      callLog_cursor.moveToPosition(item); 

      Log.v("number", callLog_cursor.getString(callLog_cursor 
        .getColumnIndex(android.provider.CallLog.Calls.NUMBER))); 

      callLog_cursor.close(); 

     } 
    }; 
    myversionOfCallLog.setCursor(callLog_cursor, listener, 
      android.provider.CallLog.Calls.NUMBER); 
    myversionOfCallLog.setTitle("Choose from Call Log"); 
    myversionOfCallLog.create().show(); 
} 
Questions connexes