티스토리 뷰

어플 ShoutCut을 만들수가 있다.


구성은 간단하며, 예제는 지정하는 패키지를 따로 지정해서 만들수 있는 방법으로 한다.

package com.example.shortcut;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends Activity {

	private static final String PACKAGE = "com.kakao.talk";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		PackageInfo packageInfo = null;
		try {
			packageInfo = getPackageManager().getPackageInfo(PACKAGE, 0);
		}
		catch(NameNotFoundException e) {
			Toast.makeText(getApplicationContext(), "Package Name Not Found", Toast.LENGTH_SHORT).show();
			return;
		}

		final CharSequence name = packageInfo.applicationInfo.loadLabel(getPackageManager());
		final BitmapDrawable icon = (BitmapDrawable)packageInfo.applicationInfo.loadIcon(getPackageManager());

		Intent packageIntent = getPackageManager().getLaunchIntentForPackage(PACKAGE);
		Intent shortCutIntent = new Intent(packageIntent);
		shortCutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

		Intent sendIntent = new Intent();
		sendIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortCutIntent);
		sendIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
		sendIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon.getBitmap());
		sendIntent.putExtra("duplicate", false);
		sendIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");

		sendBroadcast(sendIntent);
	}
}

위의 사용중에 getLaunchIntentForPackage 메소드는 카데고리가 LAUNCHER인것을 사용하면 되겠다.

이렇게 작성을 하면 되며, manifest파일에 다음의 퍼미션을 추가하여 준다.


<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>


만약 동작을 하지 않는다면, 런처가 기본을 따르지 않아서 뜨지 않는 것이므로,

기타 설명은 하지 않도록 한다.

'Mobile > Android' 카테고리의 다른 글

설치된 어플 목록 가져오기  (0) 2014.08.08
PackageName으로 어플구동  (0) 2014.08.08
DrawerLayout  (0) 2014.08.06
SlingPaneLayout  (0) 2014.08.06
ActionBar에 overflow menu 보여주기  (0) 2014.08.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함