2017-09-17 5 views
1

Pour obtenir la liste de raccourcis de toutes les applications qui sont installées sur mon téléphone, je fais cela et cela fonctionne bien.Ouvrir d'autres raccourcis d'applications à partir de mon application par programme android

PackageManager packageManager=getPackageManager(); 
       Intent shourcutIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 
       List<ResolveInfo> resolveInfos=null; 
       resolveInfos=packageManager.queryIntentActivities(shourcutIntent,0); 
       List<Intent> intentList=new ArrayList<>(); 
       int a=0; 
       for (ResolveInfo resolveInfo: resolveInfos) 
       { 
        Intent intent=new Intent(Intent.ACTION_MAIN); 
        intent.addCategory(Intent.CATEGORY_DEFAULT); 
        intent.setComponent(new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName,resolveInfo.activityInfo.name)); 
        Log.d("list"+" "+a,""+intent); 
        a++; 
        intentList.add(intent); 
       } 
       startActivityForResult(intentList.get(11),567);  

Et dans onActivityResult de le faire.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode==567) 
    { 
     if(resultCode== Activity.RESULT_OK) 
     { 
      Intent intent = (Intent) data.getParcelableExtra("android.intent.extra.shortcut.INTENT"); 
      if(intent!=null) 
      { 
       Log.d("getParcelableExtra", "!null"); 
       String uri = intent.toUri(0); 
       try 
       { 
        Intent intent1 = Intent.parseUri(uri, 0); 
        intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        startActivity(intent1); 

       } 
       catch (URISyntaxException e) 
       { 
        e.printStackTrace(); 
       } 
      } 

     } 
    } 
    } 

Mais le problème est dans onActivityResult data.getParcelableExtra("android.intent.extra.shortcut.INTENT") est de retour nul. Parfois, il ne renvoie pas null par exemple lorsque je lance le raccourci Gmail, mais en même temps pour les raccourcis de paramètres, il renvoie null.
Mais je veux quand l'utilisateur sélectionne le numéro à appeler à partir du raccourci des contacts ou tout autre raccourci que je veux lancer directement l'écran d'appel pour ce contact.
aidez s'il vous plaît.
Merci d'avance.

Répondre

0

Un moyen simple d'accomplir votre tâche est d'utiliser android:autoLink="phone" dans le fichier xml, il appellera directement sur le clic du numéro.