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을 반환하는 경우가 있습니다.
하지만 사용자가 연락처 바로 가기 또는 다른 바로 가기에서 전화 할 번호를 선택하면 해당 연락처에 대한 호출 화면을 직접 실행하려고합니다.
도와주세요.
미리 감사드립니다.