رفتن به مطلب
  • 0

تغییر ایکون برنامه B4A


ARASH900

سوال

سلام دوستان؛

چجوری میشه که بعد نصب کاربر و وارد شدن به برنامه مثلا روی دکمه کلیک کنه و ایکون برنامه و اسمش تغییر کنه رو گوشی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

تمامی aliasها باید اینتت ف.ی.ل.ت.ر زیر رو داشته باشن. همینطور خود اکتیویتی main

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۱/۶/۹ در 19:57، ARASH900 گفته است:

سلام دوستان؛

چجوری میشه که بعد نصب کاربر و وارد شدن به برنامه مثلا روی دکمه کلیک کنه و ایکون برنامه و اسمش تغییر کنه رو گوشی

سلام و درود. باید از ActivityAlias استفاده کنید. برای اکتیویتی Main چندتا Alias  تعریف کنید و هر کدومو میخواید فعال کنید

از تاپیک زیر ایده بگیرید

https://www.b4x.com/android/forum/threads/add-activity-alias-element-into-manifest-issue.139747/

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۱/۶/۹ در 20:12، محمدرضا شاهپیری گفته است:

سلام و درود. باید از ActivityAlias استفاده کنید. برای اکتیویتی Main چندتا Alias  تعریف کنید و هر کدومو میخواید فعال کنید

از تاپیک زیر ایده بگیرید

https://www.b4x.com/android/forum/threads/add-activity-alias-element-into-manifest-issue.139747/

سلام

من اینها رو به manifest اضافه کردم:

AddApplicationText(

<activity-alias 
  android:name=".MainActivityAlias" 
  android:label="test"
  android:icon="@drawable/icon2"
  android:enabled="false" 
  android:targetActivity=".main">
  
    <intent-filter>
  
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
  
    </intent-filter>
  
</activity-alias>

)

برای این کار یه کتابخونه هم به این شکل نوشتم:

package ir.testicon;

import android.content.ComponentName;
import android.content.pm.PackageManager;
import android.widget.Toast;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.Version;

@ShortName("testicon")
@Version(1f)

public class testicon {
	
	
	public void changeicon(BA ba) {
		
      PackageManager manager= ba.context.getPackageManager();
      manager.setComponentEnabledSetting(new ComponentName(ba.context.getApplicationContext(),"ir.changetest.myapp.main")
              ,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);
        
      manager.setComponentEnabledSetting(new ComponentName(ba.context.getApplicationContext(),"ir.changetest.myapp.MainActivityAlias")
              ,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
      Toast.makeText(ba.context,"Enable Old Icon" ,Toast.LENGTH_LONG).show();
  }
	
	
	
	public void changeicon2(BA ba) {
		
		PackageManager manager= ba.context.getPackageManager();
      manager.setComponentEnabledSetting(new ComponentName(ba.context.getApplicationContext(),"ir.changetest.myapp.main")
              ,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
        
      manager.setComponentEnabledSetting(new ComponentName(ba.context.getApplicationContext(),"ir.changetest.myapp.MainActivityAlias")
              ,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);
      Toast.makeText(ba.context,"Enable New Icon" ,Toast.LENGTH_LONG).show();
      
  }
	
}

با موفقیت کامپایل میشه اما موقع نصب روی شبیه ساز، چنین اروری میاد:

Installing file to device.    Error
adb: failed to install testt.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl638451297.tmp/base.apk (at Binary XML file line #20): <activity-alias> target activity ir.changetest.myapp.main not found in manifest]

این مشکل از چیه و چطور باید حل کنیم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...