Android之生成桌面快捷方式

Android之生成桌面快捷方式(一)

生成快捷方式有兩種情況,一種是直接在桌面直接生成;一種是長按桌面,在彈出的快捷菜單中生成。

談談在桌面上直接生成。個人覺得這個比較爽快,既然都是快捷方式了幹嘛還要再隱藏一層呢?當然喜歡桌面乾淨的就比較喜歡第二個了。

第一個是通過廣播(Broadcast)的形式向Luncher發送請求生成快捷方式的。

在網上找到關於這方面的註冊信息。

InstallShortcutReceiver的註冊信息:

複製代碼
 <!--設置wallpapaer的activity -->
        <!-- Intent received used to install shortcuts from other applications -->
        <receiver
            android:name="com.android.launcher2.InstallShortcutReceiver"
            android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
            <intent-filter>
                <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
            </intent-filter>
        </receiver>
複製代碼

可以看出,要在桌面上創建快捷方式就需要權限了:

android:permission="com.android.launcher.permission.INSTALL_SHORTCUT。

所以在我們的manifest.xml文件中,我們需要加入下面這段話:

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


下面就是代碼層的實現:

假如我在一個activity中創建一個創建快捷方式的方法:createShortCut();

複製代碼
public void 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.shortcutname));
                //快捷圖片
                Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon);
                shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
                //點擊快捷圖片,運行的程序主入口
                shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , EnterActivity.class));
                //發送廣播。OK
                sendBroadcast(shortcutintent);
}
複製代碼
Android之生成桌面快捷方式(二)

之前有談過直接在桌面生成快捷方式,現在說說如何在添加到一個SHORTCUTS列表中,就是你長按桌面彈出來的那個東東。

首先在註冊activity時,需要添加一個action爲android.intent.action.CREATE_SHOERTCUT的intentFilter.如下所示:

<activity android:name="ShortCutTest">
            <intent-filter>
                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
            </intent-filter>
        </activity>

接下來就是就是設置快捷方式的圖標、名稱、事件等屬性。這裏圖表的生成,android裏提供了專門的方法來生成。

複製代碼
public class ShortCutTest extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }
    
    public void createShortCut(){
        Intent addShortCut;
        //判斷是否需要添加快捷方式
        if(getIntent().getAction().equals(Intent.ACTION_CREATE_SHORTCUT)){
            addShortCut = new Intent();
            //快捷方式的名稱
            addShortCut.putExtra(Intent.EXTRA_SHORTCUT_NAME , "我的快捷方式");
            //顯示的圖片
            Parcelable icon = ShortcutIconResource.fromContext(this, R.drawable.icon);
            addShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
            //快捷方式激活的activity,需要執行的intent,自己定義
            addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent());
            //OK,生成
            setResult(RESULT_OK, addShortCut);
        }else{
            //取消
            setResult(RESULT_CANCELED);
        }
    }
}
複製代碼

ok.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章