快捷方式引起的home键问题
来源:互联网 发布:js调用身份证读取器 编辑:程序博客网 时间:2024/06/07 19:49
不知道怎么解决,求高手指点。
以下是我写的建立快捷方式的代码,请各位高手帮忙看下:
public static boolean addShortcut(Context context, String pkg) {
Log.i("i", "dddssss");
// 快捷方式名
String title = context.getString(R.string.app_name);
// MainActivity完整名
String mainAct = null;
// 应用图标标识
int iconIdentifier = 0;
// 根据包名寻找MainActivity
PackageManager pkgMag = context.getPackageManager();
Log.i("ii", "pkgMag: "+pkgMag);
System.out.println("pkgMag: "+pkgMag);
Intent queryIntent = new Intent(Intent.ACTION_MAIN, null);
//queryIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//queryIntent.setClass(context, context.getClass());
queryIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> list = pkgMag.queryIntentActivities(queryIntent,
PackageManager.GET_ACTIVITIES);
for (int i = 0; i < list.size(); i++) {
ResolveInfo info = list.get(i);
if (info.activityInfo.packageName.equals(pkg)) {
title = info.loadLabel(pkgMag).toString();
mainAct = info.activityInfo.name;
iconIdentifier = info.activityInfo.applicationInfo.icon;
break;
}
}
if (mainAct == null) {
// 没有启动类
return false;
}
Intent shortcut = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
//shortcut.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
// 快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
ComponentName comp = new ComponentName(pkg, mainAct);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(
Intent.ACTION_MAIN).setComponent(comp));
shortcut.putExtra("duplicate", false);
// 快捷方式的图标
Context pkgContext = null;
if (context.getPackageName().equals(pkg)) {
pkgContext = context;
} else {
// 创建第三方应用的上下文环境,为的是能够根据该应用的图标标识符寻找到图标文件。
try {
pkgContext = context.createPackageContext(pkg,
Context.CONTEXT_IGNORE_SECURITY
| Context.CONTEXT_INCLUDE_CODE);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
if (pkgContext != null) {
ShortcutIconResource iconRes = Intent.ShortcutIconResource
.fromContext(pkgContext, iconIdentifier);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
}
// 发送广播,让接收者创建快捷方式
// 需权限<uses-permission
// android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
context.sendBroadcast(shortcut);
return true;
}
Manifest里面也添加了权限:<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
我看UC浏览器和360手机卫士的两个快捷方式都是只开启一次软件的,我这怎么就开启两次软件了呢,求高手解决啊!谢谢各位啦!
- 快捷方式引起的home键问题
- android应用内为某个Activity创建快捷方式后按home键的问题
- 创建快捷方式,让被HOME键退出的APP恢复原状
- android 平台设置默认home后按home键弹出默认home弹框的问题
- 创建快捷方式的问题?
- MFC SmartPhone HOME键的问题
- MFC SmartPhone HOME键的问题
- android home键带来的问题
- Android 屏蔽Home键的一些问题。
- 关于Home键监听的问题
- scanf()引起的问题
- size_t引起的问题
- BuildPath引起的问题
- fork引起的问题
- tcp_timestamps 引起的问题
- 硬件加速引起的问题
- __packed引起的问题
- samba引起的问题
- poj1496(组合数学)-与1850几乎一样
- cf141div2
- 组合数学知识点
- poj2409(polya计数 套模版)
- poj1286(polya计数 套模版)
- 快捷方式引起的home键问题
- 数据结构_栈实现数值转换
- 教大家快捷的生成和解析xml
- poj2249(排列组合__套模板)
- hdu 1730 Northcott Game
- 《C++ Primer》读书笔记(6.5,6.8,6.11)
- poj1833(排列组合)
- poj2748(找规律)
- poj2356(鸽巢原理)