0
다음은 특정 번호를 호출하고 Android M 이하에서 작동하는 바로 가기를 만드는 코드의 예입니다.Android N에서 번호를 호출하기위한 바로 가기를 만들 수 없습니다.
public void installShortcutGetId(){
Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME,"MyCallShortcut");
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_CALL, Uri.parse("tel:77777777")));
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, android.R.drawable.sym_def_app_icon));
context.sendBroadcast(intent);
}
동일한 코드는 안드로이드 N에 더 이상 작동하지 않습니다, 나는 다음 로그 캣에서 볼 수 있습니다
/com.android.launcher3 E/InstallShortcutReceiver: Ignoring malicious intent tel:77777777#Intent;action=android.intent.action.CALL;end
내가 ACTION_DIAL에 ACTION_CALL 변경하면 안드로이드 N에서 작동하지만 그건 아니다 내가 찾고있는 것. 바로 가기를 통해 직접 전화를 걸 수있는 방법을 찾고 있습니다.
사용 권한 측면에서 런타임에이 2가 포함되고 CALL_PHONE이 요청되었습니다. 앱 런처를 의미하지 않는다 CALL_PHONE 권한이 있다고해서
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.CALL_PHONE" />
'installShortcutGetId()'를 실행하기 전에 허락을 요청 했습니까 – petey
예. @petey – lyc001