Chặn URL request để mở bằng Android App

Posted: 5th December 2011 by Ton Nguyen in Android
Tags: , , , ,

Khi viết ứng dụng Android, có thể bạn sẽ gặp phải trường hợp giống mình: nhận biết khi người dùng click vào một đường dẫn để mở đường dẫn đó bằng ứng dụng của mình, thay vì bằng browser. Lấy ví dụ cụ thể hơn:

Google đã đưa ra mạng xã hội Google Plus, kèm theo đó là ứng dụng Google Plus trên Android. Nếu để ý, khi bạn click vào đường link dạng profile của một user thuộc Google Plus (ví dụ: profile của mình trên G+: https://plus.google.com/114902788798240937226), Android sẽ đưa ra hộp thoại, cho phép bạn lựa chọn mở profile đó bằng các browser đã cài sẵn trong máy, hoặc mở bằng ứng dụng Google Plus (tất nhiên là cũng phải được cài sẵn trong máy). Dễ hiểu hơn rồi đúng không?


Để làm được việc này, ta sẽ sử dụng Intent, để đăng ký với hệ điều hành rằng ứng dụng của tôi có một activity có khả năng xử lý URL, với một prefix nào đó. Đây là đoạn config trong file AndroidManifest.xml:


  
    
    
    
    
  

Việc còn lại là trong MyUrlGatewayActivity, bạn phải lấy ra được đường dẫn mà người dùng đã click vào, bằng method Intent.getData():

    final Intent intent = getIntent();
    final String action = intent.getAction();

    if (Intent.ACTION_VIEW.equals(action)) {
        final List<String> segments = intent.getData().getPathSegments();
        ...
    }

Chúc bạn thành công, hoặc để lại comment nếu bạn có câu hỏi.