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

来源:互联网 发布:刷枪软件怎么制作 编辑:程序博客网 时间:2024/06/05 23:55
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"/> 

原创粉丝点击