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

Android桌面快捷方式的设置(二)

2013-07-12 09:44 295 查看
MainActivity如下:

package cn.testshortcut;

import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.Cursor;
/**
* Demo描述:
* 桌面快捷方式的设置
*
* 备注说明:
* 该方式只适合Android原生系统
*
* 权限设置:
* <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
* <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addShortcutToDesktop(MainActivity.this);
}

public static void addShortcutToDesktop(Context context) {
if (!isShortcutExist(context)) {
Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcutIntent.putExtra("duplicate", false);
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,context.getString(R.string.app_name));
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(context,R.drawable.ic_launcher));
Intent intent = new Intent(context, MainActivity.class);
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
context.sendBroadcast(shortcutIntent);
}
}

public static boolean isShortcutExist(Context context) {
ContentResolver contentResolver = context.getContentResolver();
String AUTHORITY = null;
if (Build.VERSION.SDK_INT >= 8) {
AUTHORITY = "com.android.launcher2.settings";
} else {
AUTHORITY = "com.android.launcher.settings";
}

String title = "";
PackageManager packageManager = context.getPackageManager();
try {
title = packageManager.getApplicationLabel(
packageManager.getApplicationInfo(context.getPackageName(),
PackageManager.GET_META_DATA)).toString();
} catch (NameNotFoundException e) {
e.printStackTrace();
}

Uri uri = Uri.parse("content://" + AUTHORITY + "/favorites?notify=true");
Cursor cursor = contentResolver.query(uri, null,"title=?", new String[] { title },null);
if (cursor != null && cursor.getCount() > 0) {
return true;
}
return false;
}

}


main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="建立桌面快捷方式"
android:layout_centerInParent="true"
/>

</RelativeLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: