Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android之旅第三站——Android默認打開各種文件格式DataAndType…

Android之旅第三站——Android默認打開各種文件格式DataAndType…

編輯:關於Android編程

在你手機中,打開文件的方式有這麼幾種:

1、通過要打開的這個文件的類型找到對應的應用程序app打開

2、通過已知文件類型打開應用程序,找到對應的這個文件打開

簡單點說,通過文件找對應app,通過app找對應的文件。

那麼在安卓中是怎樣實現這一效果的呢?

咱們來實現這一一個程序:

通過點擊按鈕,實現播放歌曲、打開浏覽器等的功能。

效果圖:

這裡寫圖片描述

當點擊播放歌曲時,會自動調用本地播放器播放指定歌曲,(事先必須存入模擬器當中)。

這裡寫圖片描述

將文件存入模擬器方法:

在模擬器啟動狀態下,在右上角平台切換到DDMS中,左邊Devices設備下面會有模擬器信息線程。

在右邊窗口中切換到file Explorer中,選擇/mnt/media_rw/sdcard/中,
這裡寫圖片描述

點擊DDMS下面的第二個圖標,將文件導入到模擬器,注意名字的合理,純小寫英文保險。

這裡寫圖片描述

會在/mnt/media_rw/sdcard/下面出現倒入的文件。

當點擊打開浏覽器,會調用本地浏覽器跳轉到指定網站(設置的百度)。

這裡寫圖片描述

接下來,附下代碼:

Mainactivity:

package com.example.datat;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {
    private Button bt, bt1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initViews();
        registerListeners();
    }

    private void registerListeners() {
        // TODO Auto-generated method stub
        bt.setOnClickListener(this);
        bt1.setOnClickListener(this);
    }

    private void initViews() {
        // TODO Auto-generated method stub
        bt = (Button) findViewById(R.id.bt);
        bt1 = (Button) findViewById(R.id.bt1);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        switch (v.getId()) {
        case R.id.bt:
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.parse("file://mnt/sdcard/inLove.mp3"), "audio/mp3");
            startActivity(intent);
            break;
        case R.id.bt1:
            Intent intent1 = new Intent();
            intent1.setAction(Intent.ACTION_VIEW);
            intent1.setData(Uri.parse("http://www.baidu.com"));
            startActivity(intent1);
            break;

        default:
            break;
        }
    }
}

界面的xml:

與之前的不同之處就是,

1、在Intent對象intent創建好之後,需要setaction,參數是Intent.ACTION_VIEW。

引用本地的View,

2、需要setdataAndtype,將網址或者資源文件轉換成URI(統一資源標識)。浏覽器的跳轉一般是協議http,可以不用寫type。

Intent-Filter中的data有一個mimeType . 它的作用是告訴Android系統本Activity可以處理的文件的類型。如設置為 “text/plain”表

示可以處理“.txt”文件。不同格式的文件,對應不同的type,例如Image的格式有gif, jpg等。

個人理解,URL是URI的虛擬路徑,方便好記憶,例如www.baidu.com並不是真實地址,其實也是有一堆數字好比

192.168.1.0(其實這個是路由器地址)。

歌曲有歌曲的類型(例如mp3),網址有網址的類型(例如http),每一個類型對應自己的type(例如audio/mp3)。

下面附上完整的mime type的參考手冊鏈接:asp">MIME 參考手冊

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved