展会信息港展会大全

Android创建快捷方式和判断是否已经创建
来源:互联网   发布日期:2016-01-14 12:31:41   浏览:2148次  

导读:一般的Android应用程序安装完成后是不会自动创建快捷方式的,我们可以自己在程序启动时实现。需要权限:uses-permission android:name=com.android.launcher.permission.INSTALL_SHORTCUT/和要点击快捷方式......

一般的Android应用程序安装完成后是不会自动创建快捷方式的,我们可以自己在程序启动时实现。

需要权限:

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

和要点击快捷方式对应的那个activity的属性。

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

<intent-filter>

<action android:name="android.intent.action.CREATE_SHORTCUT"></action>

</intent-filter>

如何判断快捷方式是否已经创建的方法,因为快捷方式信息是保存在com.android.launcher的launcher.db的favorites表中,所以可以查询此表得到。

需要权限:

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

下面给个例子分享给各位:

import android.app.Activity;

import android.content.ContentResolver;

import android.content.Intent;

import android.content.Intent.ShortcutIconResource;

import android.database.Cursor;

import android.graphics.BitmapFactory;

import android.net.Uri;

import android.os.Bundle;

public class AddShortCutActivity extends Activity {

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

boolean flag = IfaddShortCut();// 如果已经创建,则不需要在创建

if (flag == false) {

addShortCut();

}

}

public void addShortCut() {

Intent shortcut = new Intent(

"com.android.launcher.action.INSTALL_SHORTCUT");

// 设置属性

shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,

getResources().getString(R.string.app_name));

ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(

AddShortCutActivity.this, R.drawable.icon);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconRes);

// 是否允许重复创建

shortcut.putExtra("duplicate", false);

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

intent.setClass(AddShortCutActivity.this, AddShortCutActivity.class);

// 设置启动程序

System.out.println("createIcon");

shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);

AddShortCutActivity.this.sendBroadcast(shortcut);

}

public boolean IfaddShortCut() {

boolean isInstallShortcut = false;

final ContentResolver cr = AddShortCutActivity.this

.getContentResolver();

// 本人的2.2系统是 com.android.launcher2.settings ,网上见其他的为"com.android.launcher.settings"

final String AUTHORITY = "com.android.launcher2.settings";

final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY

+ "/favorites?notify=true");

Cursor c = cr.query(CONTENT_URI,

new String[] { "title", "iconResource" }, "title=?",

new String[] { getString(R.string.app_name) }, null);// XXX表示应用名称。

if (c != null && c.getCount() > 0) {

isInstallShortcut = true;

System.out.println("已创建");

}

return isInstallShortcut;

}

}

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.shao.add" android:versionCode="1" android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".AddShortCutActivity" android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

<intent-filter>

<action android:name="android.intent.action.CREATE_SHORTCUT"></action>

</intent-filter>

</activity>

</application>

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

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

</manifest>

赞助本站

人工智能实验室

相关热词: 创建 快捷方式

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港