Android语音交友软件源码开发,二维码扫描功能集成开发

在语音交友软件源码开发过程中,有很多功能都需要根据市场的发展进行更新,就像扫描二维码加好友,就是当下比较流行的一种方式,那么在语音交友软件源码开发过程中,如何实现二维码扫描功能呢?接下来一起了解一下吧。

首先配置ZXing库和Android工程
项目本身非常大,我们只需使用精简版的库
导入之后
在这里插入图片描述
在这里插入图片描述
TestQRcode 项目作为库被其他项目使用。
BarCodeTestActivity

package com.ericssonlabs;

import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class BarCodeTestActivity extends Activity {
    /** Called when the activity is first created. */
    private TextView resultTextView;
    private EditText qrStrEditText;
    private ImageView qrImgImageView;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        resultTextView = (TextView) this.findViewById(R.id.tv_scan_result);
        qrStrEditText = (EditText) this.findViewById(R.id.et_qr_string);
        qrImgImageView = (ImageView) this.findViewById(R.id.iv_qr_image);
        
        Button scanBarCodeButton = (Button) this.findViewById(R.id.btn_scan_barcode);
        scanBarCodeButton.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                //打开扫描界面扫描条形码或二维码
                Intent openCameraIntent = new Intent(BarCodeTestActivity.this,CaptureActivity.class);
                startActivityForResult(openCameraIntent, 0);
            }
        });
        
        Button generateQRCodeButton = (Button) this.findViewById(R.id.btn_add_qrcode);
        generateQRCodeButton.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                try {
                    String contentString = qrStrEditText.getText().toString();
                    if (!contentString.equals("")) {
                        //根据字符串生成二维码图片并显示在界面上,第二个参数为图片的大小(350*350)
                        Bitmap qrCodeBitmap = EncodingHandler.createQRCode(contentString, 350);
                        qrImgImageView.setImageBitmap(qrCodeBitmap);
                    }else {
                        Toast.makeText(BarCodeTestActivity.this, "Text can not be empty", Toast.LENGTH_SHORT).show();
                    }
                    
                } catch (WriterException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //处理扫描结果(在界面上显示)
        if (resultCode == RESULT_OK) {
            Bundle bundle = data.getExtras();
            String scanResult = bundle.getString("result");
            resultTextView.setText(scanResult);
        }
    }
}

创建项目TestQRcode,来使用BarCodeTest库
xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.jikexueyuan.testqrcode.MainActivity"
    tools:ignore="MergeRootFrame" >

    <Button
        android:id="@+id/scan"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="开始扫描二维码" />
    <TextView 
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="show"
        />
   <EditText 
       android:id="@+id/input"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:hint="请输入要编码的内容"
       />
   <Button 
       android:id="@+id/gen"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="生成二维码"
       />
   <ImageView 
       android:id="@+id/img"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       />

</LinearLayout>

MainActivity

package com.jikexueyuan.testqrcode;

import junit.framework.Test;

import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;

public class MainActivity extends Activity {

    private Button scanButton;
    private TextView text;
    private EditText input;
    private Button genButton;
    private ImageView img;

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

        scanButton = (Button) findViewById(R.id.scan);
        text = (TextView) findViewById(R.id.text);
        scanButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Toast.makeText(MainActivity.this, "你写可以扫描条形码或者二维码",
                        Toast.LENGTH_SHORT).show();
                Intent startScan = new Intent(MainActivity.this,
                        CaptureActivity.class);
                // startActivity(startScan);
                startActivityForResult(startScan, 0);
            }
        });

        input = (EditText) findViewById(R.id.input);
        genButton = (Button) findViewById(R.id.gen);
        img = (ImageView) findViewById(R.id.img);
        genButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String in = input.getText().toString();
                if (in.equals("")) {
                    Toast.makeText(MainActivity.this, "请输入文本",
                            Toast.LENGTH_SHORT).show();
                } else {
                    try {

                        Bitmap qrcode = EncodingHandler.createQRCode(in, 400);
                        img.setImageBitmap(qrcode);
                    } catch (WriterException e) {
                        e.printStackTrace();
                    }
                }

            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            String result = data.getExtras().getString("result");
            text.setText(result);
        }
    }
}

注册CaptureActivity.java

<activity
            android:configChanges="orientation|keyboardHidden"
            android:name="com.zxing.activity.CaptureActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden" >
</activity>

另外在语音交友软件源码开发此功能时,还要添加两个权限,一个是振动,一个是照相机

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>

以上就是“Android语音交友软件源码开发,二维码扫描功能集成开发”的全部内容了,希望对大家有帮助。

imsdroid 是全功能的SIP / IMS的客户端,它基于doubango框架开发的app,doubango是目前世界上最好的3GPP IMS/RCS 嵌入式桌面系统框架,该框架提供了一套独特的功能,包括音频/视频通话、内容共享、消息、会议、通讯录等。 官网地址:http://code.google.com/p/imsdroid/ 组件 1、Boghe IMS/ RCS Windows客户端 2、IMSDroid IMS/ RCS Android客户端(使用NGN堆栈) 3、iDoubs IMS/ RCS iOS客户端(iPhone,iPad和iPod Touch) 4、OpenVCS 开源视频会议服务器,用于管理多点控制单元(MCU),每个MCU可以处理多达64人参与 5、Flash2IMS 使用Adobe Flash 的SIP/ IMS网关 支持功能 1、SIP ( RFC 3261 3GPP TS 24.229 REL- 9 ) 2、 IPv4 IPv6 TCP UDP 3、信号编码 SigComp (RFC 3320 、3485、 4077 、4464 、4465、4896、5049、5112、1951) 4、通讯录 5、GSMA 通信 6、 语音(GSMA VoLTE) 7、GSMA RCS and GSMA VoLTE 8 、IMS 登陆 MD5加密 9、3GPP 10、服务路由探索 11、注册事件监听(注册事件、拨打事件、来电事件、消息事件。。。) 12、3GPP IP ( 3GPP TS 23.038 、24.040 、 24.011、 24.341、24.451短信) 13、语音呼叫( G729AB1 、 AMR - NB 、iLBC、 GSM 、 PCMA 、 PCMU、 Speex NB ) 14、视频通话( H264、MP4V - ES 、Theora、 H.263 、 H.263 -1998 、H.261 ) 15、双音多频DTMF ( RFC 4733 ) 16、解决网络延迟和阻塞技术QoS negotiation using Preconditions (RFC 3312, 4032 and 5027 17、SIP会话定时器( RFC 4028 ) 18、临时响应( PRACK ) 19、通信保持(3GPP TS 24.610 ) 20、消息等待指示( 3GPP TS 24.606 ) 21、E.164号码呼叫通过使用ENUM协议( RFC 3761 ) 22、NAT穿越 23、一对一和群组聊天
Android版VoIP客户端App源代码,用以实现经典的语音及视频通话功能开发环境的配置下载下来SipDroid源代码后,不能直接导入到eclipse中,否则是无法使用和编译的。   首先需要通过command line参照工程目录下的BUILT.txt文件对工程进行update。   如:android update project -p . -t 2(这里 -p指的是 --path -t指的是 --target)   由于是开源软件,需要版本控制的服务器,可以安装Subclipse(可以参见官网)   这样就可以将工程import到eclipse中了。   整理一些Android视频通话技术开发的资料:   SipDroid是一款开源的SIP/Voip客户端软件,针对Android手机开发平台。它是通过SIP provider来提供电话通信服务的,在它的最新的版本1.5.5beta中也提供了视频通话的服务。   它运行在标准的SIP协议之上,由于Android内核本身没有提供SIP协议栈,所以SipDroid软件中通过JNI直接实现了SIP协议栈。它能够在如下一些网络中提供VoiP服务:WLAN、3G、EDGE网络。甚至能够和Skype、Google Talk, MSN, Yahoo, AIM, and ICQ等用户进行通话。但前提必须到一些SIP provider注册账号(有免费的,也有收费的),SipDroid强烈建议使用PBXes这个sip provider来得到服务。   对于SipDroid实现视频通话的原理,目前的理解是:发送方是将是将视频数据传输到视频流媒体服务器,然后再传输给接收方的。具体细节目前不是很清楚,因为涉及到许多通信协议。   本项目共250 个目标文件,还有jni文件下c 文件需要编译。 感兴趣的同学必须得好好研究研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值