من برنامه خود را به عنوان یک صاحب دستگاه تنظیم کرده ام و هنگامی که من ()
startLockTask
را فراخوانی می کنم ، روی صفحه نمایش سنجاق (Pin) می شود . مشکل من زمانی است که سعی می کنم با استفاده از این متد ، برنامه دیگری را اجرا کنم :
Intent i = getPackageManager().getLaunchIntentForPackage("com.example.test");
startActivityForResult(i,Intent.FLAG_ACTIVITY_NEW_TASK);
همچنین کد زیر را اضافه کردم :
dpm.setLockTaskPackages(deviceAdmin,newString[]{ getPackageName(),"com.example.test"});
اما باز هم راه اندازی نکرد .
پاسخ :
شما باید برنامه را با یک applicationId
که بر روی دستگاه نصب شده ، بررسی کنید . به عنوان مثال applicationId برای شما com.example.test
است . اگر برنامه نصب نشده بود ، شما می توانید کاربر را به یک مارکت راهنمایی کرده یا به او اجازه بدهید که یک برنامه را انتخاب کند .
کد زیر را امتحان کنید :
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);