2013-09-27 160 views
7

Hiện tại trong ứng dụng của tôi, tôi có lược đồ URI của riêng mình để phát hiện khi người dùng nhấp vào một URI cụ thể.Nhận dữ liệu cho sơ đồ url tùy chỉnh trong Android

Mã được sử dụng trong Manifest tập tin như sau:

<intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="http" android:host="com.test/> 
      <action android:name="android.intent.action.VIEW" /> 
    </intent-filter> 

Nếu người dùng nhấp vào một liên kết trong đó có tùy chỉnh của tôi URI trong trình duyệt, bây giờ Nó sẽ bật lên một tùy chọn cho người dùng chọn ứng dụng của tôi.

Nhưng làm cách nào để chuyển dữ liệu này là liên kết đến ứng dụng của tôi khi được bắt đầu xử lý thêm? Về cơ bản làm cách nào để chuyển dữ liệu từ trình duyệt đến ứng dụng của tôi?

Cảm ơn trước

+0

Tại sao bạn đặt android.intent.action.VIEW hai lần? – portfoliobuilder

+0

@portfoliobuilder Nên một lần, đoán nó đã không ném bất kỳ lỗi nào nếu được viết hai lần, vì vậy sẽ bỏ qua nó. – aandroidtest

Trả lời

9

Giả url bạn click là http://twitter.com/status/1234 Bạn có thể lấy dữ liệu bằng cách sử dụng phương pháp sau đây.

// http://twitter.com/status/1234 
    Uri data = getIntent().getData(); 
    Log.d(TAG, data.toString()); 
    String scheme = data.getScheme(); // "http" 
    Log.d(TAG, scheme); 
    String host = data.getHost(); // "twitter.com" 
    Log.d(TAG, host); 
    String inurl = data.toString(); 
    List<String> params = data.getPathSegments(); 
    String first = params.get(0); // "status" 
    String second = params.get(1); // "1234" 
+0

Cảm ơn! Nó hoạt động hoàn hảo. – aandroidtest

+0

Rất vui được! –

+0

Tôi luôn luôn nhận được null trong Paths :(Nhưng dữ liệu là chính xác và không null. – djdance