[英]home screen app shortcut is not working android. app isn't installed
我已經在主屏幕上創建了應用程序快捷方式。 但它不起作用。 它始終表明app isn't installed
Toast app isn't installed
。 我嘗試了2種不同的代碼,但結果始終相同。
這是第一個代碼
private void addShortcut() {
// Adding shortcut on Home screen
Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AppName");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(
getApplicationContext(), R.drawable.ic_launcher));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
第二碼
public static void addShortcut(Context context)
{
Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
ApplicationInfo appInfo = context.getApplicationInfo();
// Shortcut name
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "appInfo.name");
shortcut.putExtra("duplicate", false); // Just create once
// Setup activity shoud be shortcut object
ComponentName component = new ComponentName(appInfo.packageName, "MainActivity.class");
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(component));
// Set shortcut icon
ShortcutIconResource iconResource = Intent.ShortcutIconResource.fromContext(context, appInfo.icon);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
context.sendBroadcast(shortcut);
}
記錄貓和清單:
02-03 22:36:58.625: E/memtrack(1697): Couldn't load memtrack module (No such file or directory)
02-03 22:36:58.625: E/android.os.Debug(1697): failed to load memtrack module: -2
02-03 22:37:02.515: E/memtrack(1708): Couldn't load memtrack module (No such file or directory)
02-03 22:37:02.515: E/android.os.Debug(1708): failed to load memtrack module: -2
02-03 22:37:03.255: E/InputDispatcher(388): channel 'b500ff48 com.example.test_shortcut/com.example.test_shortcut.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
02-03 22:37:13.805: E/WindowManager(388): Starting window AppWindowToken{b5537500 token=Token{b50334a8 ActivityRecord{b502b0e0 u0 com.example.test_shortcut/.MainActivity t7}}} timed out
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test_shortcut"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.test_shortcut.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.example.test_shortcut.PackageReplacedReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data
android:path="com.example.test_shortcut"
android:scheme="com.example" />
</intent-filter>
</receiver>
</application>
</manifest>
我已經在帶有api 18的模擬器和帶有android 4.2的平板電腦上嘗試了我的應用
任何幫助將不勝感激。 謝謝
就我而言
android:exported="true"
從啟動器調用MainActivity的工作。 如果有幫助。
你可能需要:
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REPLACED" />
同時替換:
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data
android:path="com.example.test_shortcut"
android:scheme="com.example" />
</intent-filter>
帶有:
<intent-filter android:priority="999">
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="com.example.test_shortcut" />
</intent-filter>
我還沒有實際測試過,請告訴我現在是否有效。 使用您自己的自定義程序包名稱來避免與現有應用程序沖突也不會受到傷害,而不是使用以com.example
開頭的默認程序包名稱,該默認程序包名稱用於Android上的大多數示例,演示和教程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.