5

Tôi đặt ứng dụng của mình làm chủ sở hữu thiết bị và màn hình đang ghim khi tôi gọi startLockTask(). vấn đề của tôi bây giờ khi tôi cố gắng để chạy một ứng dụng khác bằng cách sử dụng phương pháp này:Android Chạy một ứng dụng khác trong khi khóa công việc

Intent i = getPackageManager().getLaunchIntentForPackage("com.example.test"); 
startActivityForResult(i,Intent.FLAG_ACTIVITY_NEW_TASK); 

(không có gì xảy ra) những gì tôi phải làm gì để làm cho nó chạy?

Edit: tôi đã cố gắng thêm

dpm.setLockTaskPackages(deviceAdmin, new String[] { getPackageName() ,"com.example.test"}); 

của nó không khởi động quá.

+0

Bạn đang cố gắng làm gì? kiosk ứng dụng? (giới hạn một thiết bị chỉ sử dụng các ứng dụng cụ thể?) – auval

+0

Bạn có thể mô tả từng bước những gì bạn đang cố gắng làm và cách bạn đang thực hiện nó không? – windedmoose

Trả lời

3

Bạn nên kiểm tra ứng dụng có số applicationId được cài đặt trên thiết bị. ví dụ: trong trường hợp của bạn, ứng dụng Idcom.example.test. Nếu ứng dụng chưa được cài đặt, bạn có thể đưa người dùng đến một thị trường hoặc cho phép họ chọn một ứng dụng.

String packageName = "com.example.test"; 
. 
. 
. 
Intent i = context.getPackageManager().getLaunchIntentForPackage(packageName); 
if (i == null) { 
    i = new Intent(Intent.ACTION_VIEW); 
    i.setData(Uri.parse("market://details?id=" + packageName)); 
    // Open app in google play store: 
    // i.setData(Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)); 
} 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(i); 
Các vấn đề liên quan