2010-04-28 40 views
7

Tôi muốn gọi một ứng dụng Android từ một ứng dụng khácLàm thế nào để gọi một ứng dụng Android từ một ứng dụng android

Tôi đã thử một số examples, nhưng họ không làm việc cho tôi, tôi nhận được một lỗi phân tích cú pháp trọn gói.

xem xét có hai ứng dụng: Application1 và Application2

Tôi muốn gọi Application2 từ Application1

Dưới đây là các mã số mẫu để làm điều này:

Intent i = new Intent(); 
i.setAction(android.content.Intent.ACTION_VIEW); 
i.setDataAndType(Uri.fromFile(fileName),"application/vnd.android.package-archive"); 
startActivity(i); 

Đây fileName = "file://data/data/package_name/files/Application1.apk";

+2

Có rất nhiều khái niệm trong Android tương tự như "gọi một ứng dụng Android từ khác". Vui lòng cân nhắc thêm một trăm từ hoặc hơn vào câu hỏi của bạn, giải thích bạn đang cố gắng đạt được điều gì, vì vậy chúng tôi có thể giúp bạn tốt hơn. – CommonsWare

+0

Bản sao có thể có của [Khởi chạy ứng dụng từ ứng dụng khác trên Android] (http://stackoverflow.com/questions/3872063/launch-an-application-from-another-application-on-android) – galacticninja

Trả lời

1

Bạn đang cố gắng khởi chạy một ứng dụng chưa được cài đặt? Có vẻ như bạn đang cố thực thi một ứng dụng bằng cách chuyển app1 vị trí của tệp .apk cho app2 trên thẻ sd - điều này sẽ không hoạt động. Hệ điều hành Android sẽ biết cách gọi app2 qua Intent chỉ sau khi người dùng đã cài đặt nó (xem xét các rủi ro bảo mật nếu bạn chỉ có thể gọi bất kỳ mã tùy ý nào nằm trên thẻ sd).

Giả sử ứng dụng1 và app2 được cài đặt, hãy xem tệp AndroidManifest.xml cho ứng dụng2. Tệp này sẽ cho biết loại của Intent sẽ phản hồi.

xem http://developer.android.com/guide/topics/intents/intents-filters.html#npex để có ví dụ điển hình.

Vui lòng hiển thị cho chúng tôi tệp AndroidManifest.xml cho ứng dụng2 nếu bạn cần thêm trợ giúp.

5

Tôi nghĩ rằng đoạn mã này sẽ giúp:

Intent intent = new Intent(Intent.ACTION_RUN); 
intent.setComponent(new ComponentName("<packet name>", "<class name>")); 
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT); 

if(list.size() > 0) 
{ 
Log.i("Log", "Have application" + list.size()); 
startActivity(intent); 
} 
else 
{ 
    Log.i("Log", "None application"); 
} 
0
Intent i4=new Intent(Intent.ACTION_MAIN); 

PackageManager manager = getPackageManager(); 

i4 = manager.getLaunchIntentForPackage("com.apk");//apk name 

i4.addCategory(Intent.CATEGORY_LAUNCHER); 

startActivity(i4); 
Các vấn đề liên quan