كيفية تشغيل Activity من تطبيق آخر في Android باستخدام Kotlin
مرحبًا أيها الزملاء! أنا مطور Android مبتدئ باستخدام Kotlin، وقد واجهت مشكلة. أقوم بكتابة تطبيق مشغل (Launcher) يجب أن يفتح Activity من تطبيقات أخرى مثبتة. على سبيل المثال، أريد عند الضغط على زر فتح الكاميرا أو الخرائط. لكنني لا أفهم كيفية تكوين Intent بشكل صحيح وما البيانات التي يجب تمريرها.
إليك ما جربته:
```kotlin
val intent = Intent()
intent.action = Intent.ACTION_VIEW
intent.data = Uri.parse("com.example.targetapp")
startActivity(intent)
```
ولكن هذا يتسبب في تعطل التطبيق مع خطأ `android.content.ActivityNotFoundException`. كما جربت الحصول على PackageManager واستدعاء `getLaunchIntentForPackage()`:
```kotlin
val pm = packageManager
val intent = pm.getLaunchIntentForPackage("com.whatsapp")
startActivity(intent)
```
هذا يعمل مع WhatsApp، لكن ليس مع جميع التطبيقات. على سبيل المثال، لتطبيق "الملاحظات" (com.example.notes) يُرجع null. لماذا يحدث ذلك؟ وكيف يمكن فتح Activity معين داخل التطبيق، بدلاً من مجرد تشغيله؟