2014-02-20 115 views
0

我認爲標題說了一切。我只想在主屏幕上創建快捷方式,因爲我看到越來越多的應用程序在安裝後將其快捷方式放置在主屏幕上。我嘗試了一些代碼,但沒有工作。還有我的活動和清單文件:添加應用程序到主屏幕快捷方式

我的活動

import com.files.getquote.R; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 


public class GetQuoteActivity extends Activity { 

    WebView myBrowser; 
; 
    /** Called when the activity is first created. */ 
    @Override 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     myBrowser = (WebView)findViewById(R.id.mybrowser); 

     myBrowser.loadUrl("file:///android_asset/index.html"); 

     myBrowser.getSettings().setDatabasePath("/data/data/" + myBrowser.getContext().getPackageName() + "/databases/"); 

     myBrowser.getSettings().setDomStorageEnabled(true); 

     myBrowser.getSettings().setJavaScriptEnabled(true); 

     myBrowser.getSettings().setDatabaseEnabled(true); 


    } 

} 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.files.getquote" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="7" /> 
<uses-permission 
     android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 
    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> 
     <activity android:name=".GetQuoteActivity" android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 
</manifest> 

回答

3

爲了一個快捷方式添加到主屏幕在Android中,您需要執行以下操作:

清單

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

代碼

某處在您的應用程序(可能是最好的,你可以調用一個方法,放置時,應用程序啓動?)

Intent shortcut = new Intent(getApplicationContext(), MainActivity.class); 
shortcut.setAction(Intent.ACTION_MAIN); 

Intent intent = new Intent(); 
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcut); 
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "YOUR APP SHORTCUT TEXT"); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
Intent.ShortcutIconResource.fromContext(getApplicationContext(),           
    R.drawable.ic_launcher)); 
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
getApplicationContext().sendBroadcast(intent); 

您需要接收器接受廣播。但是,這應該指出你以正確的方向開始。您還需要在清單中指定android:exported="true" - 當您想從快捷方式啓動應用程序時。讓我猜測幾個小時! :)

而且額外的澄清主題:Add Shortcut for android application To home screen On button click

+0

謝謝,但你能解釋一下,或給例如vhere我應該把代碼意圖捷徑? –

+0

你想解釋一下什麼?我以爲我很清楚。基本上。把它放在一個方法中。調用類似於:createShortcut()。然後(測試)你的主要活動。堅持一個調用createShortcut()並檢查你可以創建一個。那麼你將不得不決定放置這個地方的最佳位置。正如我所說你會需要一個接收器來捕捉它。如果你需要接收器的幫助:http://developer.android.com/reference/android/content/BroadcastReceiver.html - 有你想要的所有信息:) – LokiSinclair

+0

@LokiSinclair ..謝謝你的解決方案。這對我來說可以。但我有另一個問題。我的應用支持多種語言。因此,當我在設置中更改手機語言時,我的應用名稱在啓動器中得到更新。但是應用程序名稱不會更新爲主屏幕中的新語言。我是否需要爲此添加更多內容?感謝您的閱讀.. – Sushil

0

您可以使用它來創建一個快捷方式:

Intent shortcutIntent = new Intent (this, YourActivity.class);  
Intent addIntent = new Intent(); 
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Title"); 
addIntent.putExtra("duplicate", false); 
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon)); 
addIntent. 
sendBroadcast(addIntent); 
+0

謝謝你的解決方案。這對我來說可以。但我有另一個問題。我的應用支持多種語言。因此,當我在設置中更改手機語言時,我的應用名稱在啓動器中得到更新。但是應用程序名稱不會更新爲主屏幕中的新語言。我是否需要爲此添加更多內容?謝謝閱讀.. – Sushil

相關問題