中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

android接口,Android接口

如何調用android的系統接口

顯示網頁:

城口網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯于2013年創立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯

1. Uri uri = Uri.parse("");

2. Intent it = new Intent(Intent.ACTION_VIEWuri);

3. startActivity(it);123123

顯示地圖:

1. Uri uri = Uri.parse("geo:38.-77.");

2. Intent it = new Intent(Intent.Action_VIEWuri);

3. startActivity(it);123123

路徑規劃:

1. Uri uri = Uri.parse("");

2. Intent it = new Intent(Intent.ACTION_VIEWURI);

3. startActivity(it);123123

撥打電話:

調用撥號程序

1. Uri uri = Uri.parse("tel:xxxxxx");

2. Intent it = new Intent(Intent.ACTION_DIAL uri);

3. startActivity(it);

4. 1. Uri uri = Uri.parse("tel.xxxxxx");

2. Intent it =new Intent(Intent.ACTION_CALLuri);

3. 要運用這個必須在配置文件中加入12345671234567

發送SMS/MMS

調用發送短信的程序

1. Intent it = new Intent(Intent.ACTION_VIEW);

2. it.putExtra("sms_body" "The SMS text");

3. it.setType("vnd.android-dir/mms-sms");

4. startActivity(it);1234512345

發送短信

1. Uri uri = Uri.parse("smsto:03");

2. Intent it = new Intent(Intent.ACTION_SENDTO uri);

3. it.putExtra("sms_body" "The SMS text");

4. startActivity(it);12341234

發送彩信

1. Uri uri = Uri.parse("content://media/external/images/media/23");

2. Intent it = new Intent(Intent.ACTION_SEND);

3. it.putExtra("sms_body" "some text");

4. it.putExtra(Intent.EXTRA_STREAM uri);

5. it.setType("image/png");

6. startActivity(it);123456123456

發送Email

1.

2. Uri uri = Uri.parse("mailto:");

3. Intent it = new Intent(Intent.ACTION_SENDTO uri);

4. startActivity(it);

1. Intent it = new Intent(Intent.ACTION_SEND);

2. it.putExtra(Intent.EXTRA_EMAIL "");

3. it.putExtra(Intent.EXTRA_TEXT "The email body text");

4. it.setType("text/plain");

5. startActivity(Intent.createChooser(it "Choose Email Client"));

1. Intent it=new Intent(Intent.ACTION_SEND);

2. String[] tos={""};

3. String[] ccs={""};

4. it.putExtra(Intent.EXTRA_EMAIL tos);

5. it.putExtra(Intent.EXTRA_CC ccs);

6. it.putExtra(Intent.EXTRA_TEXT "The email body text");

7. it.putExtra(Intent.EXTRA_SUBJECT "The email subject text");

8. it.setType("message/rfc822");

9. startActivity(Intent.createChooser(it "Choose Email Client"));12345678910111213141516171819201234567891011121314151617181920

添加附件

1. Intent it = new Intent(Intent.ACTION_SEND);

2. it.putExtra(Intent.EXTRA_SUBJECT "The email subject text");

3. it.putExtra(Intent.EXTRA_STREAM "");

4. sendIntent.setType("audio/mp3");

5. startActivity(Intent.createChooser(it "Choose Email Client"));123456123456

播放多媒體

1.

2. Intent it = new Intent(Intent.ACTION_VIEW);

3. Uri uri = Uri.parse("");

4. it.setDataAndType(uri "audio/mp3");

5. startActivity(it);

1. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI "1");

2. Intent it = new Intent(Intent.ACTION_VIEW uri);

3. startActivity(it);123456789123456789

Uninstall 程序

1. Uri uri = Uri.fromParts("package" strPackageName null);

2. Intent it = new Intent(Intent.ACTION_DELETE uri);

3. startActivity(it);12341234

* 安裝指定apk

*

進入聯系人頁面

Intent intent=newIntent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(People.CONTENT_URI);

startActivity(intent);12341234

/檢查指定聯系人

Uri personUri=ContentUris.withAppendedId(People.CONTENT_URI info.id);//info.id聯系人ID

Intent intent=newIntent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(personUri);

startActivity(intent);1234512345

調用系統安裝一個apk

Intent intent=newIntent();

intent.setDataAndType(Uri.parse()"application/vnd.android.package-archive");

startActivity(intent);123123

//調用相冊

public static final String MIME_TYPE_IMAGE_JPEG = "image/*";

public static final int ACTIVITY_GET_IMAGE = 0;

Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);

getImage.addCategory(Intent.CATEGORY_OPENABLE);

getImage.setType(MIME_TYPE_IMAGE_JPEG);

startActivityForResult(getImage ACTIVITY_GET_IMAGE);12345671234567

//調用系統相機應用程序,并存儲拍下來的照片

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

time = Calendar.getInstance().getTimeInMillis();

intent.putExtra(MediaStore.EXTRA_OUTPUT Uri.fromFile(new File(Environment

.getExternalStorageDirectory().getAbsolutePath()+"/tucue" time + ".jpg")));

startActivityForResult(intent ACTIVITY_GET_CAMERA_IMAGE);

@paramapkname apk名稱

publicvoidsetupAPK(String apkname){

String fileName=Environment.getExternalStorageDirectory()+"/"+apkname;

Intent intent=newIntent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(newFile(fileName))"application/vnd.android.package-archive");

mService.startActivity(intent);

}1234567891011121312345678910111213

android進階-AIDL之接口注冊/解注冊

AIDL-基本使用

AIDL-自定義數據類型

AIDL-修飾符in,out,inout

AIDL-重連方法

AIDL-接口注冊/解注冊

AIDL-連接池

為什么要特意講解一下接口的注冊與取消注冊呢,因為在使用AIDL進程跨進程通信的時候, 每次傳遞的接口對象在內存中的地址都是不一樣的 ,所以在注冊了之后,無法使用常規的方式去取消, 因為注冊和解注冊傳遞的接口地址都不一樣 ,系統無法識別

由于上面的問題,AIDL中提供了一個專門解決上述情況的類 RemoteCallbackList ,其工作原理就是:

首先,在前面講解 AIDL的基本使用 的基礎上先增加新的AIDL接口以及注冊和解注冊方法:

然后就是 RemoteCallbackList 的使用方法了:

注冊/解注冊很簡單

接著是使用接口的方式:

ps: 需要注意的是 beginBroadcast() 方法和 finishBroadcast() 方法 必須配合使用 ,哪怕只是簡單的獲取集合大小

使用AIDL進行跨進程間通信中,往往我們是需要注冊監聽,讓服務端通知的,但是服務端也必須提供解注冊的方法,不然客戶端如果離開某個界面不想再接受消息了,雖然直接離開不做處理客戶端這邊不會出錯,但是服務端那邊的監聽集合還存在之前的,那么就會浪費系統資源,所以有注冊監聽的時候,最好也要實現解注冊的方法

《Android開發藝術探索》

Android原生編解碼接口 MediaCodec 之——完全解析

MediaCodec 是Android 4.1(api 16)版本引入的編解碼接口, Developer 官網 上描述的已經很清楚了。可以配合 中文翻譯 一起看。理解更深刻。

MediaCodec的工作流程:

從上圖可以看出 MediaCodec 架構上采用了2個緩沖區隊列,異步處理數據,并且使用了一組輸入輸出緩存。

你請求或接收到一個空的輸入緩存(input buffer),向其中填充滿數據并將它傳遞給編解碼器處理。編解碼器處理完這些數據并將處理結果輸出至一個空的輸出緩存(output buffer)中。最終,你請求或接收到一個填充了結果數據的輸出緩存(output buffer),使用完其中的數據,并將其釋放給編解碼器再次使用。

具體工作如下:

MediaCodec的基本調用流程是:

1.初始化MediaCodec,方法有兩種,分別是通過名稱和類型來創建,對應的方法為:

2.配置編碼器,設置各種編碼器參數(MediaFormat),這個類包含了比特率、幀率、關鍵幀間隔時間等。然后再調用 mMediaCodec .configure,對于 API 19 以上的系統,我們可以選擇 Surface 輸入:mMediaCodec .createInputSurface,

3.打開編碼器,獲取輸入輸出緩沖區

獲取輸入輸出緩沖區在api19 上是以上方式獲取,api21以后 可以使用直接獲取ByteBuffer

4.輸入數據,有2種方式,一種是普通輸入,一種是Surface 輸入

普通輸入又可區分為兩種情況,一種是配合MediaExtractor ,一種是取原數據;

返回一個填充了有效數據的input buffer的索引,如果沒有可用的buffer則返回-1,參數為超時時間(TIMES_OUT),單位是微秒,當timeoutUs==0時,該方法立即返回;當timeoutUs0時,無限期地等待一個可用的input buffer,當timeoutUs0時,

等待時間為傳入的微秒值。

上面輸入緩存的index,通過getInputBuffers()得到的是輸入緩存數組,通過index和輸入緩存數組可以得到當前請求的輸入緩存,在使用之前要clear一下,避免之前的緩存數據影響當前數據,接著就是把數據添加到輸入緩存中,并調用queueInputBuffer(...)把緩存數據入隊;

5.輸出數據

通常編碼傳輸時每個關鍵幀頭部都需要帶上編碼配置數據(PPS,SPS),但 MediaCodec 會在首次輸出時專門輸出編碼配置數據,后面的關鍵幀里是不攜帶這些數據的,所以需要我們手動做一個拼接;

6.使用完MediaCodec后釋放資源

要告知編碼器我們要結束編碼,Surface 輸入的話調用 mMediaCodec .signalEndOfInputStream,普通輸入則可以為在 queueInputBuffer 時指定 MediaCodec.BUFFER_FLAG_END_OF_STREAM 這個 flag;告知編碼器后我們就可以等到編碼器輸出的 buffer 帶著 MediaCodec.BUFFER_FLAG_END_OF_STREAM 這個 flag 了,等到之后我們調用 mMediaCodec .release 銷毀編碼器

流控就是流量控制。 為什么要控制,就是為了在一定的限制條件下,收益最大化!

涉及到了 TCP 和視頻編碼:

對 TCP 來說就是控制單位時間內發送數據包的數據量,對編碼來說就是控制單位時間內輸出數據的數據量。

TCP 的限制條件是網絡帶寬,流控就是在避免造成或者加劇網絡擁塞的前提下,盡可能利用網絡帶寬。帶寬夠、網絡好,我們就加快速度發送數據包,出現了延遲增大、丟包之后,就放慢發包的速度(因為繼續高速發包,可能會加劇網絡擁塞,反而發得更慢)。

視頻編碼的限制條件最初是解碼器的能力,碼率太高就會無法解碼,后來隨著 codec 的發展,解碼能力不再是瓶頸,限制條件變成了傳輸帶寬/文件大小,我們希望在控制數據量的前提下,畫面質量盡可能高。

一般編碼器都可以設置一個目標碼率,但編碼器的實際輸出碼率不會完全符合設置,因為在編碼過程中實際可以控制的并不是最終輸出的碼率,而是編碼過程中的一個量化參數(Quantization Parameter,QP),它和碼率并沒有固定的關系,而是取決于圖像內容。 這一點不在這里展開,感興趣的朋友可以閱讀視頻壓縮編碼和音頻壓縮編碼的基本原理。

無論是要發送的 TCP 數據包,還是要編碼的圖像,都可能出現“尖峰”,也就是短時間內出現較大的數據量。TCP 面對尖峰,可以選擇不為所動(尤其是網絡已經擁塞的時候),這沒有太大的問題,但如果視頻編碼也對尖峰不為所動,那圖像質量就會大打折扣了。如果有幾幀數據量特別大,但仍要把碼率控制在原來的水平,那勢必要損失更多的信息,因此圖像失真就會更嚴重。 這種情況通常的表現是畫面出現很多小方塊,看上去像是打了馬賽克一樣,導致畫面的局部或者整體看不清楚的情況

配置時指定目標碼率和碼率控制模式:

碼率控制模式有三種:

碼率控制模式在 MediaCodecInfo.EncoderCapabilities 類中定義了三種,在 framework 層有另一套名字和它們的值一一對應:

動態調整目標碼率:

Android 流控策略選擇

下面展示使用MediaExtractor獲取數據后,用MediaMuxer重新寫成一個MP4文件的簡單栗子

android 接口有哪些作用

1. 多個 Interface 可以同時被一個類繼承的特性可以彌補 Java 單繼承的缺點,增強其可擴展性;

2. 定義公共接口和公共回調方法可以規范代碼;

android 接口和抽象的區別

抽象類:

含有abstract修飾符的class

即為抽象類,

abstract類不能創建實例對象,

含有abstract的方法的類必須定義為abstract

class

abstract

class

里的方法不必是抽象的,

抽象來中定義抽象方法必須放在具體子類中實現,所以,不能有抽象的構造方法或抽象的靜態方法,如果子類沒有實現抽象父類中的所有方法,那么,子類也必須定義為抽象類。

接口:

接口(interface)可以說成是抽象類的特例。接口中的所有方法都必須是抽象的,接口中的方法定義默認為public

abstract

。接口中的變量是全局常量,即public

static

final修飾的。

語法上的區別:

1,抽象類里可以有構造方法,而接口內不能有構造方法。

2,抽象類中可以有普通成員變量,而接口中不能有普通成員變量。

3,抽象類中可以包含非抽象的普通方法,而接口中所有的方法必須是抽象的,不能有非抽象的普通方法。

4,抽象類中的抽象方法的訪問類型可以是public

,protected和默認類型,但接口中的抽象方法只能是public類型的,并且默認即為public

abstract類型。

5,抽象類中可以包含靜態方法,接口內不能包含靜態方法。

6,抽象類和接口中都可以包含靜態成員變量,抽象類中的靜態成員變量的訪問類型可以任意,但接口中定義的變量只能是public

static類型,并且默認為public

static類型。

7,一個類可以實現多個接口,但只能繼承一個抽象類。

再補充點兩者在應用上的區別:

名稱欄目:android接口,Android接口
URL鏈接:http://www.2m8n56k.cn/article4/dsihcie.html

成都網站建設公司_創新互聯,為您提供軟件開發搜索引擎優化網站制作動態網站ChatGPT企業網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 国产精品亚洲精品影院 | 国产亚洲精品久久精品6 | 黄色网点 | 久热精品男人的天堂在线视频 | 怡红院成人网 | 欧美日韩一区二区三区视频在线观看 | 激情视频一区 | 欧美一级毛片免费观看视频 | 国产性夜夜春夜夜爽30 | 黄色美女网站免费 | 国产三级观看 | 99久久精彩视频 | 美女黄页黄频 | 亚洲国产成人久久一区二区三区 | 2020国产成人免费视频 | 久久中文亚洲国产 | 一级欧美| 欧美一级久久久久久久大 | 国产精品久久久久久久久免费观看 | 日韩免费高清 | 国产成人lu在线视频 | 五月色婷婷综合开心网亚 | 亚洲高清中文字幕一区二区三区 | 人成精品 | 欧美亚洲精品一区 | 国产成人综合在线 | 亚洲国产小视频 | 91亚洲精品一区二区在线观看 | 色熟| 国产福利片在线 易阳 | 久久久久免费观看 | 中国性猛交xxxxx免费看 | 亚洲一区 在线播放 | 一本久久综合 | 手机在线精品视频每日更新 | 亚洲精品久久久久影院 | fc2ppv在线播放| 日韩区| 高清午夜看片a福利在线观看琪琪 | 国产手机精品视频 | 国产中文字幕视频在线观看 |