Helpex - Trao đổi & giúp đỡ Đăng nhập
23

Tôi muốn khởi chạy màn hình chính của Android với ứng dụng của mình. Mục tiêu chính là hiển thị tất cả các ứng dụng cho người dùng khi họ nhấn một phím chuyên biệt. Thực ra đường đi không quan trọng. Bất kỳ ý tưởng để làm điều này?

23 hữu ích 0 bình luận 45k xem chia sẻ
59

Đây là mã để bắt đầu HomeActivity

        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
59 hữu ích 4 bình luận chia sẻ
11

Nhận xét bạn đã đưa ra về một số câu trả lời cho thấy bạn thực sự muốn khởi chạy Trình khởi chạy (bạn có thể muốn cập nhật tiêu đề nếu đúng như vậy). Để làm điều này, hãy sử dụng cùng một phương pháp mà Anand đã đề xuất để khởi chạy hoạt động tại nhà.

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_LAUNCHER);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
11 hữu ích 2 bình luận chia sẻ
6

Không có "màn hình hiển thị ứng dụng có biểu tượng cho người dùng" trong Android.

Những gì bạn đang nghĩ đến là một tính năng của một số màn hình chính. Không có tiêu chuẩn nào Intentđể kích hoạt điều này xuất hiện và không có yêu cầu đối với màn hình chính phải có tính năng như vậy.

Bạn được hoan nghênh để viết của riêng bạn. Đây là một dự án mẫu hiển thị các hoạt động có thể truy cập trong a ListView.

6 hữu ích 1 bình luận chia sẻ
4

hãy thử một cái gì đó như thế này để nhấp vào nút quay lại bất kỳ bạn sẽ truy cập vào màn hình chính / ...

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Display confirmation here, finish() activity.
        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
4 hữu ích 0 bình luận chia sẻ
2

Không có giải pháp nào ở đây phù hợp với tôi ..

Tôi đã làm cho nó hoạt động bằng cách sử dụng mã dưới đây

PackageManager pm = getPackageManager();
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
if (lst != null) {
   for (ResolveInfo resolveInfo : lst) {
       try {
       Intent home = new Intent("android.intent.action.MAIN");
       home.addCategory("android.intent.category.HOME");
       home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
       startActivity(home);
       break;
       } catch (Throwable t) {
           t.printStackTrace();
       }
   }
}

Lấy nó từ: https://stackoverflow.com/a/16483596/1241783

Hy vọng điều này sẽ giúp ai đó

2 hữu ích 0 bình luận chia sẻ
1

Tôi không chắc liệu tôi có hoàn toàn hiểu những gì bạn đang cố gắng làm hay không! Nhưng nếu bạn muốn người dùng có thể truy cập ứng dụng khác bằng cách nhấp vào bên trong ứng dụng của mình, thì bạn nên kiểm tra "ý định". Chạy mã mẫu API DEMO trong eclipse và chạy Ứng dụng -> Ý định

1 hữu ích 0 bình luận chia sẻ
1

Tôi nghĩ rằng tôi đã đến bữa tiệc rất muộn, nhưng tôi cũng có một mối quan tâm tương tự. Các câu trả lời được đưa ra ở đây sẽ khởi chạy menu lựa chọn cho phép bạn chọn Trình khởi chạy. Nếu bạn có nhiều trình khởi chạy trong mã của mình, câu trả lời ở đây: https://stackoverflow.com/a/8666155 có thể hữu ích. Thao tác này trực tiếp khởi chạy màn hình chính mặc định của Android.

1 hữu ích 0 bình luận chia sẻ
1

Tôi đã đạt được nó bằng cách sử dụng một dòng

moveTaskToBack(true); //activity.moveTaskToBack(true);

Nó hoạt động giống như Nút Home

1 hữu ích 0 bình luận chia sẻ
0

Điều này đang làm việc tốt cho tôi!

Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);      
    startActivity(startMain);

ai đó có thể giải thích tại sao chúng ta cần cái này không?

startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

btw, đây là những gì tôi đang tìm kiếm

moveTaskToBack(true);
0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ java android homescreen , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading