2012-02-26 46 views
10

Khi người dùng cài đặt ứng dụng Android, biểu tượng trình khởi chạy được tạo trong menu ứng dụng. Nhiều người dùng tôi nói để mong đợi rằng khi họ cài đặt một ứng dụng, một biểu tượng sẽ tự động xuất hiện trên màn hình chính của họ ("bệ phóng").Cài đặt biểu tượng trình khởi chạy trong màn hình chính sau khi

Rất nhiều ứng dụng đạt được điều này bằng cách nào đó. Sở thích của tôi là có cửa sổ xuất hiện khi cài đặt hỏi người dùng "Bạn có muốn thêm lối tắt không?" Nếu không thể, bất kỳ mã nào tự động thêm lối tắt sẽ thực hiện.

Android cung cấp một loạt mã ở đây: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html Có nghĩa là thêm mã này (và xml có liên quan) vào dự án của bạn sẽ thực hiện thủ thuật. Nhưng nó không có tác dụng tôi muốn. Có vẻ như mã được cung cấp là thụ động, và tôi cần kích hoạt nó bằng cách nào đó.

Vì vậy, câu hỏi của tôi là:

Làm thế nào để kích hoạt quá trình cài đặt của một phím tắt, và làm thế nào để chắc chắn rằng nó chỉ xảy ra một lần, tốt nhất là kích hoạt bởi một số loại "cài đặt ứng dụng" sự kiện?

PS: Một yếu tố phức tạp là tôi đang tạo ứng dụng của mình bằng PhoneGap, có nghĩa là hoạt động chính không phải là "Hoạt động" nhưng "DroidGap".

+1

Bật ứng dụng được cài đặt thông qua Android Market sẽ tự động cài đặt một phím tắt trình khởi chạy nếu bạn bao gồm quyền INSTALL_SHORTCUT. Nhưng bạn không thể nói cho đến khi bạn đã xuất bản ứng dụng của mình: ngay cả khi cài đặt từ APK bạn tải xuống điện thoại của mình thông qua các phương tiện khác sẽ không thực hiện thủ thuật. – Wytze

Trả lời

1

Trong ví dụ, nó trả về intent trong setResult(...). Tôi tin rằng bạn cần chạy sendBroadcast(intent) để kích hoạt cài đặt phím tắt.

+0

Bộ ba, cảm ơn nhận xét này. Tôi đã thử chạy sendBroadcast (ý định) từ những nơi khác nhau trong cả hai App.java (hoạt động chính) và trong LauncherShortcuts.java chính nó. Không kết quả. – Wytze

+0

Hm bạn cũng có '' trong tệp 'AndroidManifest.xml' của bạn? – triad

+0

Tôi cũng nhận thấy mã mẫu không gọi 'intent.setAction (Intent.ACTION_CREATE_SHORTCUT)', cũng cần thiết. – triad

0

Lớp DroidGap mở rộng Hoạt động để bạn chỉ có thể thêm mã từ liên kết bạn đã cung cấp để thêm lối tắt.

+0

Simon, tôi đã thử thêm mã từ liên kết. Điều đó không hiệu quả. Tôi đã bao gồm LauncherShortcuts.java và LauncherShortcuts.xml, nhưng không có gì xảy ra khi tôi cài đặt ứng dụng của mình. Có lẽ bạn có một ý tưởng cụ thể hơn tôi làm khi bạn nói "thêm vào mã từ liên kết"? – Wytze

4
Intent shortcutIntent = new Intent(getApplicationContext(), HomeScreen.class);  
    shortcutIntent.setAction(Intent.ACTION_MAIN); 

    Intent addIntent = new Intent(); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AIMS ICD"); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.aims)); 
    addIntent.putExtra("duplicate", false); 
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(addIntent); 
Các vấn đề liên quan