当前位置:  编程技术>移动开发
本页文章导读:
    ▪Action恒量        Action常量 String  ADD_SHORTCUT_ACTION    动作:在系统中添加一个快捷方式。"android.intent.action.ADD_SHORTCUT" String  ALL_APPS_ACTION    动作:列举所有可用的应用。输入:无。  "android.intent.action.ALL.........
    ▪ Andorid 抽取视频/音频包孕的标题、格式、艺术家等信息        Andorid 抽取视频/音频包含的标题、格式、艺术家等信息 写道 从百度转载   一种方式:解析媒体文件 android.media.MediaMetadataRetriever是Andorid内部的用于抽取视频/音频包含的标题、格式、艺术家.........
    ▪ 新浪微博采取Oauth发送图片和文字       新浪微博采用Oauth发送图片和文字 基于网上很多人利用新浪api开发新浪微博客户端的时候遇到无法发图片的问题,很多人卡在了这一布。现将代码呈上,希望能帮到一些朋友。     /** * 发.........

[1]Action恒量
    来源: 互联网  发布时间: 2014-02-18
Action常量
String  ADD_SHORTCUT_ACTION    动作:在系统中添加一个快捷方式。"android.intent.action.ADD_SHORTCUT"

String  ALL_APPS_ACTION    动作:列举所有可用的应用。输入:无。  "android.intent.action.ALL_APPS"

String  ALTERNATIVE_CATEGORY    类别:说明 activity 是用户正在浏览的数据的一个可选操作。  "android.intent.category.ALTERNATIVE"

String  ANSWER_ACTION    动作:处理拨入的电话。  "android.intent.action.ANSWER"

String  BATTERY_CHANGED_ACTION    广播:充电状态,或者电池的电量发生变化。  "android.intent.action.BATTERY_CHANGED"

String  BOOT_COMPLETED_ACTION    广播:在系统启动后,这个动作被广播一次(只有一次)。  "android.intent.action.BOOT_COMPLETED"

String  BROWSABLE_CATEGORY    类别:能够被浏览器安全使用的 activities 必须支持这个类别。  "android.intent.category.BROWSABLE" 

String  BUG_REPORT_ACTION    动作:显示 activity 报告错误。  "android.intent.action.BUG_REPORT"

String  CALL_ACTION  动作:拨打电话,被呼叫的联系人在数据中指定。  "android.intent.action.CALL"

String  CALL_FORWARDING_STATE_CHANGED_ACTION  广播:语音电话的呼叫转移状态已经改变。  "android.intent.action.CFF"

String  CLEAR_CREDENTIALS_ACTION  动作:清除登陆凭证 (credential)。  "android.intent.action.CLEAR_CREDENTIALS"

String  CONFIGURATION_CHANGED_ACTION  广播:设备的配置信息已经改变.  "android.intent.action.CONFIGURATION_CHANGED" 

String  DATA_ACTIVITY_STATE_CHANGED_ACTION  广播:电话的数据活动(data activity)状态(即收发数据的状态)已经改变。  "android.intent.action.DATA_ACTIVITY"

String  DATA_CONNECTION_STATE_CHANGED_ACTION  广播:电话的数据连接状态已经改变。  "android.intent.action.DATA_STATE"

String  DATE_CHANGED_ACTION  广播:日期被改变。  "android.intent.action.DATE_CHANGED"

String  DEFAULT_ACTION  动作:和 VIEW_ACTION 相同,是在数据上执行的标准动作。  "android.intent.action.VIEW"

String  DEFAULT_CATEGORY  类别:如果 activity 是对数据执行确省动作(点击, center press)的一个选项,需要设置这个类别。  "android.intent.category.DEFAULT"

String  DELETE_ACTION  动作:从容器中删除给定的数据。  "android.intent.action.DELETE"

String  DEVELOPMENT_PREFERENCE_CATEGORY  类别:说明 activity 是一个设置面板 (development preference panel).  "android.intent.category.DEVELOPMENT_PREFERENCE"

String  DIAL_ACTION  动作:拨打数据中指定的电话号码。  "android.intent.action.DIAL"

String  EDIT_ACTION  动作:为制定的数据显示可编辑界面。  "android.intent.action.EDIT"

String  EMBED_CATEGORY  类别:能够在上级(父)activity 中运行。  "android.intent.category.EMBED"

String  EMERGENCY_DIAL_ACTION  动作:拨打紧急电话号码。  "android.intent.action.EMERGENCY_DIAL" 

String  FOTA_CANCEL_ACTION  广播:取消所有被挂起的 (pending) 更新下载。  "android.server.checkin.FOTA_CANCEL"

String  FOTA_INSTALL_ACTION  广播:更新已经被确认,马上就要开始安装。  "android.server.checkin.FOTA_INSTALL"

String  FOTA_READY_ACTION  广播:更新已经被下载,可以开始安装。  "android.server.checkin.FOTA_READY" 

String  FOTA_RESTART_ACTION  广播:恢复已经停止的更新下载。  "android.server.checkin.FOTA_RESTART"

String  FOTA_UPDATE_ACTION  广播:通过 OTA 下载并安装操作系统更新。  "android.server.checkin.FOTA_UPDATE"

String  FRAMEWORK_INSTRUMENTATION_TEST_CATEGORY  类别:To be used as code under test for framework instrumentation tests.  "android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST"

String  GADGET_CATEGORY  类别:这个 activity 可以被嵌入宿主 activity (activity that is hosting gadgets)。  "android.intent.category.GADGET"

String  GET_CONTENT_ACTION  动作:让用户选择数据并返回。  "android.intent.action.GET_CONTENT"

String  HOME_CATEGORY  类别:主屏幕 (activity),设备启动后显示的第一个 activity。  "android.intent.category.HOME" 

String  INSERT_ACTION  动作:在容器中插入一个空项 (item)。  "android.intent.action.INSERT"

String  INTENT_EXTRA  附加数据:和 PICK_ACTIVITY_ACTION 一起使用时,说明用户选择的用来显示的 activity;和 ADD_SHORTCUT_ACTION
一起使用的时候,描述要添加的快捷方式。  "android.intent.extra.INTENT"

String  LABEL_EXTRA  附加数据:大写字母开头的字符标签,和 ADD_SHORTCUT_ACTION 一起使用。  "android.intent.extra.LABEL" 

String  LAUNCHER_CATEGORY  类别:Activity 应该被显示在顶级的 launcher 中。  "android.intent.category.LAUNCHER"

String  LOGIN_ACTION  动作:获取登录凭证。  "android.intent.action.LOGIN"

String  MAIN_ACTION  动作:作为主入口点启动,不需要数据。  "android.intent.action.MAIN"

String  MEDIABUTTON_ACTION  广播:用户按下了“Media Button”。  "android.intent.action.MEDIABUTTON"

String  MEDIA_BAD_REMOVAL_ACTION  广播:扩展介质(扩展卡)已经从 SD 卡插槽拔出,但是挂载点 (mount point) 还没解除 (unmount)。  "android.intent.action.MEDIA_BAD_REMOVAL"

String  MEDIA_EJECT_ACTION  广播:用户想要移除扩展介质(拔掉扩展卡)。  "android.intent.action.MEDIA_EJECT" 

String  MEDIA_MOUNTED_ACTION  广播:扩展介质被插入,而且已经被挂载。  "android.intent.action.MEDIA_MOUNTED"

String  MEDIA_REMOVED_ACTION  广播:扩展介质被移除。  "android.intent.action.MEDIA_REMOVED"

String  MEDIA_SCANNER_FINISHED_ACTION  广播:已经扫描完介质的一个目录。  "android.intent.action.MEDIA_SCANNER_FINISHED"

String  MEDIA_SCANNER_STARTED_ACTION  广播:开始扫描介质的一个目录。  "android.intent.action.MEDIA_SCANNER_STARTED"

String  MEDIA_SHARED_ACTION  广播:扩展介质的挂载被解除 (unmount),因为它已经作为 USB 大容量存储被共享。  "android.intent.action.MEDIA_SHARED"

String  MEDIA_UNMOUNTED_ACTION  广播:扩展介质存在,但是还没有被挂载 (mount)。  "android.intent.action.MEDIA_UNMOUNTED" 

String  MESSAGE_WAITING_STATE_CHANGED_ACTION  广播:电话的消息等待(语音邮件)状态已经改变。  "android.intent.action.MWI"

String  NETWORK_TICKLE_RECEIVED_ACTION  广播:设备收到了新的网络 "tickle" 通知。  "android.intent.action.NETWORK_TICKLE_RECEIVED"
String  PACKAGE_ADDED_ACTION  广播:设备上新安装了一个应用程序包。  "android.intent.action.PACKAGE_ADDED" 

String  PACKAGE_REMOVED_ACTION  广播:设备上删除了一个应用程序包。  "android.intent.action.PACKAGE_REMOVED"

String  PHONE_STATE_CHANGED_ACTION  广播:电话状态已经改变。  "android.intent.action.PHONE_STATE"

String  PICK_ACTION  动作:从数据中选择一个项目 (item),将被选中的项目返回。  "android.intent.action.PICK"

String  PICK_ACTIVITY_ACTION  动作:选择一个 activity,返回被选择的 activity 的类(名)。  "android.intent.action.PICK_ACTIVITY"

String  PREFERENCE_CATEGORY  类别:activity是一个设置面板 (preference panel)。  "android.intent.category.PREFERENCE" 

String  PROVIDER_CHANGED_ACTION  广播:更新将要(真正)被安装。  "android.intent.action.PROVIDER_CHANGED"

String  PROVISIONING_CHECK_ACTION  广播:要求 polling of provisioning service 下载最新的设置。  "android.intent.action.PROVISIONING_CHECK"

String  RUN_ACTION  动作:运行数据(指定的应用),无论它(应用)是什么。  "android.intent.action.RUN"

String  SAMPLE_CODE_CATEGORY  类别:To be used as an sample code example (not part of the normal user experience).  "android.intent.category.SAMPLE_CODE"

String  SCREEN_OFF_ACTION  广播:屏幕被关闭。  "android.intent.action.SCREEN_OFF"

String  SCREEN_ON_ACTION  广播:屏幕已经被打开。  "android.intent.action.SCREEN_ON"

String  SELECTED_ALTERNATIVE_CATEGORY  类别:对于被用户选中的数据,activity 是它的一个可选操作。  "android.intent.category.SELECTED_ALTERNATIVE"

String  SENDTO_ACTION  动作:向 data 指定的接收者发送一个消息。  "android.intent.action.SENDTO"

String  SERVICE_STATE_CHANGED_ACTION  广播:电话服务的状态已经改变。  "android.intent.action.SERVICE_STATE"

String  SETTINGS_ACTION  动作:显示系统设置。输入:无。  "android.intent.action.SETTINGS"

String  SIGNAL_STRENGTH_CHANGED_ACTION  广播:电话的信号强度已经改变。  "android.intent.action.SIG_STR"

String  STATISTICS_REPORT_ACTION  广播:要求 receivers 报告自己的统计信息。  "android.intent.action.STATISTICS_REPORT"

String  STATISTICS_STATE_CHANGED_ACTION  广播:统计信息服务的状态已经改变。  "android.intent.action.STATISTICS_STATE_CHANGED"

String  SYNC_ACTION  动作:执行数据同步。  "android.intent.action.SYNC"

String  TAB_CATEGORY  类别:这个 activity 应该在 TabActivity 中作为一个 tab 使用。  "android.intent.category.TAB" 

String  TEMPLATE_EXTRA  附加数据:新记录的初始化模板。  "android.intent.extra.TEMPLATE" 

String  TEST_CATEGORY  类别:作为测试目的使用,不是正常的用户体验的一部分。  "android.intent.category.TEST"

String  TIMEZONE_CHANGED_ACTION  广播:时区已经改变。  "android.intent.action.TIMEZONE_CHANGED"

String  TIME_CHANGED_ACTION  广播:时间已经改变(重新设置)。  "android.intent.action.TIME_SET"

String  TIME_TICK_ACTION  广播:当前时间已经变化(正常的时间流逝)。  "android.intent.action.TIME_TICK" 

String  UMS_CONNECTED_ACTION  广播:设备进入 USB 大容量存储模式。  "android.intent.action.UMS_CONNECTED"

    
[2] Andorid 抽取视频/音频包孕的标题、格式、艺术家等信息
    来源: 互联网  发布时间: 2014-02-18
Andorid 抽取视频/音频包含的标题、格式、艺术家等信息
写道
从百度转载
 
一种方式:解析媒体文件
android.media.MediaMetadataRetriever是Andorid内部的用于抽取视频/音频包含的标题、格式、艺术家等信息工具类.
//示例
MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setMode(MediaMetadataRetriever.MODE_GET_METADATA_ONLY);
//时长
String duration = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
//艺术家
String artist = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
//标题 String title = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);


------------其它可以抽取的信息---------
public static final int METADATA_KEY_CD_TRACK_NUMBER = 0;
public static final int METADATA_KEY_ALBUM           = 1;
public static final int METADATA_KEY_ARTIST          = 2;
public static final int METADATA_KEY_AUTHOR          = 3;
public static final int METADATA_KEY_COMPOSER        = 4;
public static final int METADATA_KEY_DATE            = 5;
public static final int METADATA_KEY_GENRE           = 6;
public static final int METADATA_KEY_TITLE           = 7;
public static final int METADATA_KEY_YEAR            = 8;
public static final int METADATA_KEY_DURATION        = 9;
public static final int METADATA_KEY_NUM_TRACKS      = 10;
public static final int METADATA_KEY_IS_DRM_CRIPPLED = 11;
public static final int METADATA_KEY_CODEC           = 12;
public static final int METADATA_KEY_RATING          = 13;
public static final int METADATA_KEY_COMMENT         = 14;
public static final int METADATA_KEY_COPYRIGHT       = 15;
public static final int METADATA_KEY_BIT_RATE        = 16;
public static final int METADATA_KEY_FRAME_RATE      = 17;
public static final int METADATA_KEY_VIDEO_FORMAT    = 18;
public static final int METADATA_KEY_VIDEO_HEIGHT    = 19;
public static final int METADATA_KEY_VIDEO_WIDTH     = 20;
public static final int METADATA_KEY_WRITER          = 21;




二种方式:读取媒体文件数据库:
创建工具包:com.sky_dreaming.tools.media.provider
编写媒体信息封装类:MediaInfo.java
package com.sky_dreaming.tools.media.provider;

import java.io.UnsupportedEncodingException;

import android.graphics.Bitmap;

/**
* Media info beans
*
*
*/
public class MediaInfo {


        /**
         * play total time
         */
        private int playDuration = 0;
       
        /**
         * song name
         */
        private String mediaName = "";

        /**
         * album name
         */
        private String mediaAlbum = "";
       
        /**
         * artist name
         */
        private String mediaArtist = "";

        /**
         * mYear
         */
        private String mediaYear = "";

        /**
         * fileName
         */
        private String mFileName = "";
       
        /**
         * mFileType
         */
        private String mFileType = "";

        /**
         * mFileSize
         */
        private String mFileSize = "";

        /**
         * mFilePath
         */
        private String mFilePath = "";
       
       
        public Bitmap getmBitmap() {
                return mBitmap;
        }

        public void setmBitmap(Bitmap mBitmap) {
                this.mBitmap = mBitmap;
        }

        private Bitmap mBitmap = null;

        /**
         * getPlayDuration
         *
         * @return
         */
        public int getPlayDuration() {
                return playDuration;
        }

        /**
         * setPlayDuration
         *
         * @param playDuration
         */
        public void setPlayDuration(int playDuration) {
                this.playDuration = playDuration;
        }

        /**
         * getMediaName
         *
         * @param playDuration
         */
        public String getMediaName() {
                return mediaName;
        }

        /**
         * setMediaName
         *
         * @param playDuration
         */
        public void setMediaName(String mediaName) {
                try {
                        mediaName =new String (mediaName.getBytes("ISO-8859-1"),"GBK");
                } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                this.mediaName = mediaName;
        }

        /**
         * getMediaAlbum
         *
         * @param playDuration
         */
        public String getMediaAlbum() {
                return mediaAlbum;
        }

        /**
         * setMediaAlbum
         *
         * @param playDuration
         */
        public void setMediaAlbum(String mediaAlbum) {
                try {
                        mediaAlbum =new String (mediaAlbum.getBytes("ISO-8859-1"),"GBK");
                } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                this.mediaAlbum = mediaAlbum;
        }

        /**
         * getMediaArtist
         *
         * @param playDuration
         */
        public String getMediaArtist() {
                return mediaArtist;
        }

        /**
         * setMediaArtist
         *
         * @param playDuration
         */
        public void setMediaArtist(String mediaArtist) {
                try {
                        mediaArtist =new String (mediaArtist.getBytes("ISO-8859-1"),"GBK");
                } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                this.mediaArtist = mediaArtist;
        }

        /**
         * getMediaYear
         *
         * @param playDuration
         */
        public String getMediaYear() {
                return mediaYear;
        }

        /**
         * setMediaYear
         *
         * @param playDuration
         */
        public void setMediaYear(String mediaYear) {
                this.mediaYear = mediaYear;
        }

        /**
         * getmFileName
         *
         * @param playDuration
         */
        public String getmFileName() {
                return mFileName;
        }

        /**
         * setmFileName
         *
         * @param playDuration
         */
        public void setmFileName(String mFileName) {
                this.mFileName = mFileName;
        }

        /**
         * getmFileType
         *
         * @param playDuration
         */
        public String getmFileType() {
                return mFileType;
        }

        /**
         * setmFileType
         *
         * @param playDuration
         */
        public void setmFileType(String mFileType) {
                this.mFileType = mFileType;
        }

        /**
         * getmFileSize
         *
         * @param playDuration
         */
        public String getmFileSize() {
                return mFileSize;
        }

        /**
         * setmFileSize
         *
         * @param playDuration
         */
        public void setmFileSize(String mFileSize) {
                this.mFileSize = mFileSize;
        }

        /**
         * getmFilePath
         *
         * @param playDuration
         */
        public String getmFilePath() {
                return mFilePath;
        }

        /**
         * setmFilePath
         *
         * @param playDuration
         */
        public void setmFilePath(String mFilePath) {
                this.mFilePath = mFilePath;
        }

}
编写数据提供工具类:MediaInfoProvider
package com.sky_dreaming.tools.media.provider;

import java.io.File;

import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
import android.provider.MediaStore.MediaColumns;
import android.util.Log;
import android.widget.Toast;

/**
* tools to get media file info
*
*
*/
public class MediaInfoProvider {

        /**
         * context
         */
        private Context mContext = null;

        /**
         * data path
         */
        private static final String dataPath = "/mnt";
       
        /**
         * query column
         */
        private static final String[] mCursorCols = new String[] {
                        MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DISPLAY_NAME,
                        MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DURATION,
                        MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM,
                        MediaStore.Audio.Media.YEAR, MediaStore.Audio.Media.MIME_TYPE,
                        MediaStore.Audio.Media.SIZE, MediaStore.Audio.Media.DATA };

        /**
         * MediaInfoProvider
         * @param context
         */
        public MediaInfoProvider(Context context) {
                this.mContext = context;
        }

        /**
         * get the media file info by path
         * @param filePath
         * @return
         */
        public MediaInfo getMediaInfo(String filePath) {

                /* check a exit file */
                File file = new File(filePath);
                if (file.exists()) {
                        Toast.makeText(mContext, "sorry, the file is not exit!",
                                        Toast.LENGTH_SHORT);
                }
               
                /* create the query URI, where, selectionArgs */
                Uri Media_URI = null;
                String where = null;
                String selectionArgs[] = null;
               
                if (filePath.startsWith("content://media/")) {
                        /* content type path */
                        Media_URI = Uri.parse(filePath);
                        where = null;
                        selectionArgs = null;
                } else {
                        /* external file path */
                        if(filePath.indexOf(dataPath) < 0) {
                                filePath = dataPath + filePath;
                        }
                        Media_URI = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
                        where = MediaColumns.DATA + "=?";
                        selectionArgs = new String[] { filePath };
                }
               
                /* query */
                Cursor cursor = mContext.getContentResolver().query(Media_URI,
                                mCursorCols, where, selectionArgs, null);
                if (cursor == null || cursor.getCount() == 0) {
                        return null;
                } else {
                        cursor.moveToFirst();
                        MediaInfo info = getInfoFromCursor(cursor);
                        printInfo(info);
                        return info;
                }
        }

        /**
         * get the media info beans from cursor
         * @param cursor
         * @return
         */
        private MediaInfo getInfoFromCursor(Cursor cursor) {
                MediaInfo info = new MediaInfo();
               
                /* file name */
                if(cursor.getString(1) != null) {
                        info.setmFileName(cursor.getString(1));
                }
                /* media name */
                if(cursor.getString(2) != null) {
                        info.setMediaName(cursor.getString(2));
                }
                /* play duration */
                if(cursor.getString(3) != null) {
                        info.setPlayDuration(cursor.getInt(3));
                }
                /* artist */
                if(cursor.getString(4) != null) {
                        info.setMediaArtist(cursor.getString(4));
                }
                /* album */
                if(cursor.getString(5) != null) {
                        info.setMediaAlbum(cursor.getString(5));
                }
                /* media year */
                if (cursor.getString(6) != null) {
                        info.setMediaYear(cursor.getString(6));
                } else {
                        info.setMediaYear("undefine");
                }
                /* media type */
                if(cursor.getString(7) != null) {
                        info.setmFileType(cursor.getString(7).trim());
                }
                /* media size */
                if (cursor.getString(8) != null) {
                        float temp = cursor.getInt(8) / 1024f / 1024f;
                        String sizeStr = (temp + "").substring(0, 4);
                        info.setmFileSize(sizeStr + "M");
                } else {
                        info.setmFileSize("undefine");
                }
                /* media file path */
                if (cursor.getString(9) != null) {
                        info.setmFilePath(cursor.getString(9));
                }

                return info;
        }
       
        /**
         * print media info
         * @param info
         */
        private void printInfo(MediaInfo info) {
                // TODO Auto-generated method stub
                Log.i("playDuration","" + info.getPlayDuration());
                Log.i("mediaName","" + info.getMediaName());
                Log.i("mediaAlbum","" + info.getMediaAlbum());
                Log.i("mediaArtist","" + info.getMediaArtist());
                Log.i("mediaYear","" + info.getMediaYear());
                Log.i("fileName","" + info.getmFileName());
                Log.i("fileType","" + info.getmFileType());
                Log.i("fileSize","" + info.getmFileSize());
                Log.i("filePath","" + info.getmFilePath());
        }
}
可以避免乱码 

    
[3] 新浪微博采取Oauth发送图片和文字
    来源: 互联网  发布时间: 2014-02-18
新浪微博采用Oauth发送图片和文字

基于网上很多人利用新浪api开发新浪微博客户端的时候遇到无法发图片的问题,很多人卡在了这一布。现将代码呈上,希望能帮到一些朋友。

 

 

/**
	 * 发表带图片的微博
	 * @param token
	 * @param tokenSecret
	 * @param aFile
	 * @param status
	 * @param urlPath
	 * @return
	 */
	public String uploadStatus(String token, String tokenSecret, File aFile, String status, String urlPath) {
		httpOAuthConsumer = new DefaultOAuthConsumer(consumerKey,consumerSecret);
        httpOAuthConsumer.setTokenWithSecret(token,tokenSecret);
        String result = null;
		try {
			URL url = new URL(/blog_article/urlPath/index.html);
	        HttpURLConnection request = (HttpURLConnection) url.openConnection();
	        request.setDoOutput(true);
	        request.setRequestMethod("POST");
	        HttpParameters para = new HttpParameters();
	        para.put("status", URLEncoder.encode(status,"utf-8").replaceAll("\\+", "%20"));
	        String boundary = "---------------------------37531613912423";
	        String content = "--"+boundary+"\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\n";
	        String pic = "\r\n--"+boundary+"\r\nContent-Disposition: form-data; name=\"pic\"; filename=\"image.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n";
	        byte[] end_data = ("\r\n--" + boundary + "--\r\n").getBytes(); 
	        FileInputStream stream = new FileInputStream(aFile);
			byte[] file = new byte[(int) aFile.length()];
			stream.read(file);
			request.setRequestProperty("Content-Type", "multipart/form-data; boundary="+boundary); //设置表单类型和分隔符 
	        request.setRequestProperty("Content-Length", String.valueOf(content.getBytes().length + status.getBytes().length + pic.getBytes().length + aFile.length() + end_data.length)); //设置内容长度 
	        httpOAuthConsumer.setAdditionalParameters(para);
	        httpOAuthConsumer.sign(request);
	        OutputStream ot = request.getOutputStream();
	        ot.write(content.getBytes());
	        ot.write(status.getBytes());
	        ot.write(pic.getBytes());
	        ot.write(file);
	        ot.write(end_data);
	        ot.flush();
	        ot.close();
	        request.connect();
	        if (200 == request.getResponseCode()) {
	        	result = "SUCCESS";
	        }
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (OAuthMessageSignerException e) {
			e.printStackTrace();
		} catch (OAuthExpectationFailedException e) {
			e.printStackTrace();
		} catch (OAuthCommunicationException e) {
			e.printStackTrace();
		}
		return result;
	} 
1 楼 Crazymn007 2011-11-18  
你好,我遇到的问题是带图片的微博可以同非中文内容一起发送。跟中文的一起发送就不行了。这是什么问题呢?求解答
2 楼 mzba520 2011-11-18  
Crazymn007 写道
你好,我遇到的问题是带图片的微博可以同非中文内容一起发送。跟中文的一起发送就不行了。这是什么问题呢?求解答


你有没有对中文进行编码啊?
3 楼 zp8126 2011-11-29  
我的是获得request.getResponseCode()老是403,为什么啊,你这里的urlPath是什么啊,String token, String tokenSecret和httpOAuthConsumer = new DefaultOAuthConsumer(consumerKey,consumerSecret);  这些都分别是什么呢 ,谢谢啊
4 楼 mzba520 2011-11-30  
zp8126 写道
我的是获得request.getResponseCode()老是403,为什么啊,你这里的urlPath是什么啊,String token, String tokenSecret和httpOAuthConsumer = new DefaultOAuthConsumer(consumerKey,consumerSecret);  这些都分别是什么呢 ,谢谢啊


token,tokenSecret是你从新浪那里获取的。
consumerKey,consumerSecret是你去申请app key的时候得到的

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3