您的位置:首页 > 移动开发 > Android开发

android 检查是否创建桌面快捷方式

2012-06-12 22:08 423 查看
android 检查是否创建桌面快捷方式
http://blog.csdn.net/wqs1000/article/details/6951574
package com.wqs;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.ComponentName;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.Intent.ShortcutIconResource;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.content.pm.PackageManager.NameNotFoundException;

import android.os.Bundle;

public class ShortcutActivity extends Activity {

/** Called when the activity is first created. */

public static final String pName ="com.wqs";

public static int versionCode;

public static String versionName;

SharedPreferences isShowIconRef;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

getCode();

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setMessage("是否创建快捷方式")

.setCancelable(false)

.setPositiveButton("yes", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

addShortcut();

}

})

.setNegativeButton("No", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

dialog.cancel();

}

});

AlertDialog alert = builder.create();

isShowIconRef = getSharedPreferences("isShowIcon"+versionName, 0);

boolean isShowIcon=isShowIconRef.getBoolean("isShowIcon"+versionName, false);

if(!isShowIcon){

System.out.println("未创建快捷方式");

alert.show();

}else{

System.out.println("已创建快捷方式");

}

}

/**

* 为程序创建桌面快捷方式

*/

private void addShortcut(){

Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

//快捷方式的名称

shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));

shortcut.putExtra("duplicate", false); //不允许重复创建

//指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer

//注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序

ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName());

shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));

//快捷方式的图标

ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);

sendBroadcast(shortcut);

isShowIconRef = getSharedPreferences(

"isShowIcon"+versionName, 0);

Editor isShowIconRef_e = isShowIconRef.edit();

isShowIconRef_e.putBoolean("isShowIcon"+versionName, true);

isShowIconRef_e.commit();

}

/**

* 检查版本号

*/

public void getCode() {

try {

PackageInfo pinfo = getPackageManager().getPackageInfo(pName,

PackageManager.GET_CONFIGURATIONS);

versionCode = pinfo.versionCode;

versionName = pinfo.versionName;

} catch (NameNotFoundException e) {

versionName = "1.0";

}

}
}

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

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

<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: