Android应用程序开发 - 用户创建的快捷方式,用户定义的名称和图标更改应用程序更新

时间:2014-07-01 21:09:40

标签: java android shortcut

基本上我们有2个发射器活动。 MainActivity使用用户选择的自定义图标和名称创建快捷方式,并将SecondActivity链接到快捷方式。

由于用户选择了快捷方式图标和名称,因此没有真正的'默认图标。

但是每当我们在PlayStore中加载应用程序的更新时,默认情况下(应用程序图标和名称)都会覆盖用户创建的快捷方式的图标和名称。

默认情况下,如果活动未定义,活动将从应用程序继承图标和名称,但我们无法定义它,因为它始终由用户创建或选择。

在PlayStore上更新应用时,我们如何避免覆盖图标和名称?

来自ANDROID MANIFEST的示例

<application
           android:icon="@drawable/ic_launcher"
           android:label="@string/app_name">
       <activity
               android:name=".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>
       <activity
               android:name=".SecondActivity"
               android:theme="@android:style/Theme.NoDisplay"
               android:excludeFromRecents="true"
               android:launchMode="singleInstance">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
</application>

来自MainActivity.java的示例

Intent shortcutIntent = new Intent(getApplicationContext(), SecondActivity.class);
shortcutIntent.setAction(Intent.ACTION_VIEW);
shortcutIntent.putExtra("Something", "Blah");

Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);

// name is created by the user
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, aShortcut.getName()); //getName returns    a String

// icon is selected by the user
BitmapDrawable icon = (BitmapDrawable) aShortcut.getIcon(); // getIcon returns a   drawable
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON,icon.getBitmap());

addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
this.sendBroadcast(addIntent);

0 个答案:

没有答案