android中怎么在桌面创建其他应用快捷方式
2个回答
2016-05-09 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
Activity里添加这样的一个方法:
/**
* 创建快捷方式
*/
public void createDeskShortCut() {
Log.i("coder", "------createShortCut--------");
// 创建快捷方式的Intent
Intent shortcutIntent = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
// 不允许重复创建
shortcutIntent.putExtra("duplicate", false);
// 需要现实的名称
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));
// 快捷图片
Parcelable icon = Intent.ShortcutIconResource.fromContext(
getApplicationContext(), R.drawable.ic_launcher);
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
Intent intent = new Intent(getApplicationContext(),
AndroidLayoutActivity.class);
// 点击快捷图片,运行的程序主入口
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
// 发送广播。OK
sendBroadcast(shortcutIntent);
}
如果只是添加这些代码,当卸装应用程序的时候又会发现存在一个问题就是应用程序虽然卸载了,可是桌面上的快捷方式并未卸载。呵呵,其实只要设置对应启动进入的那个Intent加上这么下面的两个属性就是表明与应用绑定了。
// 下面两个属性是为了当应用程序卸载时桌面上的快捷方式会删除
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
给上完整的代码:
package com.jiahui.layout;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.Log;
public class AndroidLayoutActivity extendsActivity {
/**Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_personal_info);
SharedPreferencespreferences = getSharedPreferences("first",
Context.MODE_PRIVATE);
booleanisFirst = preferences.getBoolean("isfrist", true);
if(isFirst) {
createDeskShortCut();
}
SharedPreferences.Editoreditor = preferences.edit();
editor.putBoolean("isfrist",false);
editor.commit();
}
/**
* 创建快捷方式
*/
publicvoid createDeskShortCut() {
Log.i("coder","------createShortCut--------");
//创建快捷方式的Intent
IntentshortcutIntent = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
//不允许重复创建
shortcutIntent.putExtra("duplicate",false);
//需要现实的名称
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));
//快捷图片
Parcelableicon = Intent.ShortcutIconResource.fromContext(
getApplicationContext(),R.drawable.ic_launcher);
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,icon);
Intentintent = new Intent(getApplicationContext(),
AndroidLayoutActivity.class);
//下面两个属性是为了当应用程序卸载时桌面 上的快捷方式会删除
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
//点击快捷图片,运行的程序主入口
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,intent);
//发送广播。OK
sendBroadcast(shortcutIntent);
}
}
4
千万别忘记在AndroidManifest.xml加上下面的这个权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
/**
* 创建快捷方式
*/
public void createDeskShortCut() {
Log.i("coder", "------createShortCut--------");
// 创建快捷方式的Intent
Intent shortcutIntent = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
// 不允许重复创建
shortcutIntent.putExtra("duplicate", false);
// 需要现实的名称
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));
// 快捷图片
Parcelable icon = Intent.ShortcutIconResource.fromContext(
getApplicationContext(), R.drawable.ic_launcher);
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
Intent intent = new Intent(getApplicationContext(),
AndroidLayoutActivity.class);
// 点击快捷图片,运行的程序主入口
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
// 发送广播。OK
sendBroadcast(shortcutIntent);
}
如果只是添加这些代码,当卸装应用程序的时候又会发现存在一个问题就是应用程序虽然卸载了,可是桌面上的快捷方式并未卸载。呵呵,其实只要设置对应启动进入的那个Intent加上这么下面的两个属性就是表明与应用绑定了。
// 下面两个属性是为了当应用程序卸载时桌面上的快捷方式会删除
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
给上完整的代码:
package com.jiahui.layout;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.Log;
public class AndroidLayoutActivity extendsActivity {
/**Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_personal_info);
SharedPreferencespreferences = getSharedPreferences("first",
Context.MODE_PRIVATE);
booleanisFirst = preferences.getBoolean("isfrist", true);
if(isFirst) {
createDeskShortCut();
}
SharedPreferences.Editoreditor = preferences.edit();
editor.putBoolean("isfrist",false);
editor.commit();
}
/**
* 创建快捷方式
*/
publicvoid createDeskShortCut() {
Log.i("coder","------createShortCut--------");
//创建快捷方式的Intent
IntentshortcutIntent = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
//不允许重复创建
shortcutIntent.putExtra("duplicate",false);
//需要现实的名称
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));
//快捷图片
Parcelableicon = Intent.ShortcutIconResource.fromContext(
getApplicationContext(),R.drawable.ic_launcher);
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,icon);
Intentintent = new Intent(getApplicationContext(),
AndroidLayoutActivity.class);
//下面两个属性是为了当应用程序卸载时桌面 上的快捷方式会删除
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
//点击快捷图片,运行的程序主入口
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,intent);
//发送广播。OK
sendBroadcast(shortcutIntent);
}
}
4
千万别忘记在AndroidManifest.xml加上下面的这个权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |