עזרה | שימוש בסטרינג שמור בComponentName
-
אולי הכותרת לא מנוסחת נכון, אז אני אסביר. יש לי את קטע הקוד הבא
PACKAGE_NAME = getContext().getPackageName(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.setComponent(new ComponentName = PACKAGE_NAME); launcher.startActivity(intent);
כמו שאפשר להבין, הסטרינג
PACKAGE_NAME
מקבל את שם החבילה של אפליקציה מסויימת (משתנה, כל פעם משהו אחר.)
ואני רוצה שהIntnet יפעיל את האפליקציה הזו.
הצורה שבה כתבתי את הקוד לא עובדת, בקימפול זה מה שכתוב ליerror: '(' or '[' expected intent.setComponent(new ComponentName = PACKAGE_NAME);
-
-
@זונדל כתב בעזרה | שימוש בסטרינג שמור בComponentName:
צוכל לראות כאן
דוגמה לקוד שפותח אפליקציה אחרת לפי אקטיביטי
Nשם ניסיתי והסתבכתי.
@זונדל כתב בעזרה | שימוש בסטרינג שמור בComponentName:
מקבל את השם חבילה שלך
בטוח? הבנתי אחרת... כנראה טעיתי. בכל מקרה, יש לך רעיון איך לעשות את מה שאני רוצה?
-
@מישהו12
אם אתה רוצה יש לי קוד שפותח אפליקציה רק לפי שם חבילה בלי אקטיביטיIntent open = context.getPackageManager().getLaunchIntentForPackage(com.android.package); if (open != null) { open.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(open); } else { Log.d(TAG,"לא נמצא"); // האפליקציה לא נמצאה, ניתן לטפל בזה כרצונך }
תחליף את השם חבילה לשם של האפליקציה שאתה רוצה לפתוח
את הקוד הוצאתי מתוך פרויקט שלי וקצת ערכתי לפי איך שאתה עשית יתכן שיש דברים בקוד שלא רלוונטים לך כמו הדגלים (addFlags)
-
@מישהו12 כתב בעזרה | שימוש בסטרינג שמור בComponentName:
מה הבעיה עם הcontext?
הcontext זה משתנה בקוד שלי שיורש את הcontext אתה צריך להתאים לקוד שלך אם אתה בmainActivity הcontext שלך יראה ככה this או MainActivity.this
(תנסה למחוק את הcontext לחלוטין לפעמים לא צריך זה תלוי איפה ממקום הקוד) -
@זונדל וואלה לא הבנתי בדיוק מה לעשות... היה לי את הבעיה הזו כבר עם קוד אחר שהעתקתי.
אני לא בMainActivity.
הקוד שלי נמצא כאן, אשמח לעזרה
https://github.com/AshiVered/monolaunch/blob/main/app/src/main/java/com/monobogdan/monolaunch/Tasks.java
(שורות 122-128) -
@מישהו12 כתב בעזרה | שימוש בסטרינג שמור בComponentName:
@זונדל וואלה לא הבנתי בדיוק מה לעשות... היה לי את הבעיה הזו כבר עם קוד אחר שהעתקתי.
אני לא בMainActivity.
הקוד שלי נמצא כאן, אשמח לעזרה
https://github.com/AshiVered/monolaunch/blob/main/app/src/main/java/com/monobogdan/monolaunch/Tasks.java
(שורות 122-128)עברתי על הקוד שלך הקוד הזה צריך להיות תקין
Intent open = getContext().getPackageManager().getLaunchIntentForPackage("com.package.your"); if (open != null) { open.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getContext().startActivity(open); } else { Log.d("TAG","לא נמצא"); // האפליקציה לא נמצאה, ניתן לטפל בזה כרצונך }
לא הבנתי מאיפה אתה מקבל בדיוק את השם חבילה שאתה רוצה לפתוח אבל אם אתה מעוניין בשם חבילה ספציפי תחליף בשורה הראשנה לשם חבילה
-
@זונדל כתב בעזרה | שימוש בסטרינג שמור בComponentName:
לא הבנתי מאיפה אתה מקבל בדיוק את השם חבילה שאתה רוצה לפתוח אבל אם אתה מעוניין בשם חבילה ספציפי תחליף בשורה הראשנה לשם חבילה
תגובה 1
תגובה אחרונה לפני 8 דקותהסתבכתי לחלוטין עם לקבל את שם החבילה, אתה יכול לעזור גם בזה? תודה רבה.
-
@מישהו12 כתב בעזרה | שימוש בסטרינג שמור בComponentName:
@זונדל האקטיביטי tasks מציג את כל האפליקציות שרצות ברקע, אני רוצה שבלחיצה על אחת מהאפליקציות שברשימה היא תפתח
זה אמור לעבוד בכל מכשיר או שרק בדגם מסויין כי יש לי קריסה איך שאני פתוח את האפליקציה
-
@מישהו12 כתב בעזרה | שימוש בסטרינג שמור בComponentName:
@זונדל אמור לעבוד בכל מכשיר.
אולי בגלל השגיאות בקוד.
רק שניה... בקוד הזה זה בוודאי עובד.
בדקתי על Qin1s+.
monolaunch.7zהשגיאה הייתה בגלל חוסר בהרשאות הוספתי תוכל להסביר לי בגדול איפה בדיוק החלק שמציג את כל האפליקציות שפועלות ברקע?