2017-09-17 4 views
1

내 휴대 전화에 설치된 모든 앱의 바로 가기 목록을 보려면이 작업을 수행하는 것이 좋습니다.내 앱에서 다른 앱 바로 가기 열기 프로그래밍 방식으로 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);  

그리고 이것을 수행하는 onActivityResult.

@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(); 
       } 
      } 

     } 
    } 
    } 

는 그러나 문제는 onActivityResult를 data.getParcelableExtra("android.intent.extra.shortcut.INTENT")에 가 null 반환이다. Gmail 단축키를 실행할 때 null을 반환하지만 설정 단축키와 동시에 null을 반환하는 경우가 있습니다.
하지만 사용자가 연락처 바로 가기 또는 다른 바로 가기에서 전화 할 번호를 선택하면 해당 연락처에 대한 호출 화면을 직접 실행하려고합니다.
도와주세요.
미리 감사드립니다.

답변

0

작업을 수행하는 간단한 방법 중 하나는 xml 파일에서 android:autoLink="phone"을 사용하여 번호를 클릭 할 때 직접 호출합니다.

관련 문제