当前位置:  编程技术>移动开发
本页文章导读:
    ▪腾讯360再度狭路相逢        腾讯360再次狭路相逢 昨日,广东省高级人民法院在官方微博上发布预告称,北京奇虎科技有限公司诉腾讯科技(深圳)有限公司、深圳市腾讯计算机系统有限公司滥用市场支配地 位纠纷一案将.........
    ▪ listview分页联系人,并兑现打电话功能        listview分页联系人,并实现打电话功能,main.xml配置 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent.........
    ▪ 腾讯微博api的蛋疼有关问题       腾讯微博api的蛋疼问题最近在用腾讯微博的api时候,认证的时候发现有腾讯微博的redirectUri 10051错误,百度了一下说是没有填对redirecturi 我勒个去哪里有redirecturi呢,找了半天原来是 尼玛的.........

[1]腾讯360再度狭路相逢
    来源: 互联网  发布时间: 2014-02-18
腾讯360再次狭路相逢

昨日,广东省高级人民法院在官方微博上发布预告称,北京奇虎科技有限公司诉腾讯科技(深圳)有限公司、深圳市腾讯计算机系统有限公司滥用市场支配地 位纠纷一案将于今日上午9时30分在广东省高级人民法院宣判。专家认为,这是中国互联网首例反垄断官司,其宣判结果将对中国互联网行业产生较大影响。昨 日,腾讯和奇虎360双方均表示不方便评论。

核心是互联网业市场界定

“3Q大战”是一场 由360针对腾讯推出“隐私保护器”和“扣扣保镖”引发的纷争,腾讯认为360此举存在不正当竞争,于是在2010年11月3日,腾讯突然发布“致广大 QQ用户的一封信”,决定将在装有360软件的电脑上停止运行QQ软件。导致“3Q大战”发展到白热化程度。在工信部的介入下,360公司召回了“360 扣扣保镖”软件,腾讯公司也恢复了webQQ的登录,QQ和360恢复兼容。

不过随后,腾讯在广东高院起诉奇虎360不正当竞争。而奇虎360则起诉腾讯滥用市场支配地位。360的1.5亿元和腾讯的1.25亿元相互索赔,也成为中国互联网历史上涉及金额最大的两家公司之间的诉讼案件。

去 年4月18日,奇虎360在广东省高院起诉腾讯滥用市场支配地位的诉讼率先开庭。奇虎360请求法院判令腾讯公司立即停止滥用市场地位,停止实施QQ软件 用户不得与原告交易并捆绑搭售行为。奇虎360称腾讯在“3Q大战”期间滥用其即时通讯工具QQ的市场支配地位,强制用户卸载已安装的360软件,属垄断 行为。

为此 ,奇虎360向腾讯索赔1.5亿元,并公开赔礼道歉。腾讯则请求法院驳回360全部诉讼请求。昨日一位律师认为, 该案的核心恐怕不在于滥用行为的认定及损害赔偿的确定,而是互联网行业相关市场的界定。

背后较量:

“反360”联盟再次壮大

背 后的较量仍在继续,并且有着扩大化的趋势。早在“3Q大战”期间,百度、金山网络、腾讯就曾经结盟,使3Q大战最终由公司间的战争升级为联盟间的战争。随 后,腾讯注资金山网络。2011年8月25日,腾讯与经纬创投以1860万美元(约合人民币1.202亿元)购得金山1.024亿股优先股,对金山网络的 估值为1.63亿美元。

近期以来,“反360”联盟再次壮大。去年在杭州举办的AVAR国际反病毒安全会议上,腾讯、百度和金山网络已经坐 在了一起,大有在安全领域“合围”360的势头。最近,百度入股金山网络的传闻甚嚣,一旦成为事实,将被视为百度、腾讯、金山网络三家公司的再度结盟。其 中,金山网络成了最大的受益者—,不仅获得腾讯的注资,也获得了腾讯的流量资源。瑞信在最新报告中称,当年腾讯投资金山,目的是让反病毒软件与自有产品集 成,提供保护。而如今百度入股金山的目的是利用金山的产品打击奇虎360,影响其浏览器份额,损害其搜索份额。

对此,360董事长周鸿祎反驳这是一个“笑话”。他称,任何结盟都应以用户利益来考量,而非利用垄断地位争夺用户,不应以遏制对手发展为目标。而360总裁齐向东则称,百度、金山、腾讯三方各有各的优势,也有直接利益冲突,合作貌合神离,可以说是“三个和尚没水喝”。

有专家认为, 腾讯QQ、百度和奇虎360仍然在明争暗斗,如果真的为用户着想就和平解决问题,恶性竞争最后受伤的一定是广大用户。


    
[2] listview分页联系人,并兑现打电话功能
    来源: 互联网  发布时间: 2014-02-18
listview分页联系人,并实现打电话功能,

main.xml配置

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/list" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="bottom">
<Button android:id="@+id/pre" android:text="@string/pre"
android:layout_width="wrap_content" android:layout_height="wrap_content"
/>
<Button android:id="@+id/next" android:text="@string/next"
android:layout_width="wrap_content" android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>

lvdata.xml配置

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/lv_name"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textSize="15dip" android:textColor="#ffffff" />
<TextView android:id="@+id/lv_phone"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignRight="@id/lv_name"
android:layout_below="@id/lv_name"
  android:textSize="16dip" android:textColor="#00ffff" />
</RelativeLayout>

string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">联系人应用</string>
    <string name="pre">上一页</string>
    <string name="next">下一页</string>
    <string name="page">分页</string>
</resources>

在AndroidManifest.xml中配置权限

<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

java代码

package com.contacts;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;


public class MainActivity extends Activity {
private ListView lv;
private Button bt1,bt2;
private MyAdapter myadapter;
private View.OnClickListener vc;
private int VIEW_COUNT = 10;
private int index = 0;
private List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
private Map<String,Object> map;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initView();
        ContentResolver cr = getContentResolver();
        Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
        new String[]{CommonDataKinds.Phone.NUMBER,CommonDataKinds.Phone.DISPLAY_NAME}, null, null, null);
        while(cursor.moveToNext()){
        map = new HashMap<String,Object>();
        //获取联系人姓名
        map.put("name", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));
        //获取联系人电话
        map.put("phone", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
        list.add(map);
        }
        vc = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.pre:
leftView();
break;
case R.id.next:
rightView();
break;
}
}
};
        //关闭cursor
        cursor.close();
        bt1.setOnClickListener(vc);
        bt2.setOnClickListener(vc);
        checkButton();
        myadapter = new MyAdapter(this);
        lv.setAdapter(myadapter);
        lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
final int position, long id) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("您确定要打电话?");
builder.setMessage("打电话功能");
builder.setIcon(R.drawable.icon);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
which = position + index * VIEW_COUNT;;
String phone = list.get(which).get("phone").toString();
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone));
startActivity(intent);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
}
});
    }
private void initView() {
lv = (ListView)findViewById(R.id.list);
bt1 = (Button)findViewById(R.id.pre);
bt2 = (Button)findViewById(R.id.next);
}
public void leftView() {
index--;
myadapter.notifyDataSetChanged();
checkButton();
}


public void rightView() {
index++;
myadapter.notifyDataSetChanged();
checkButton();
}


public void checkButton() {
// 索引值小于等于0,表示不能向前翻页了,以经到了第一页了。
// 将向前翻页的按钮设为不可用。
if (index <= 0) {
bt1.setEnabled(false);
}
// 值的长度减去前几页的长度,剩下的就是这一页的长度,如果这一页的长度比View_Count小,表示这是最后的一页了,后面在没有了。
// 将向后翻页的按钮设为不可用。
else if (list.size() - index * VIEW_COUNT <= VIEW_COUNT) {
bt2.setEnabled(false);
} else {
bt1.setEnabled(true);
bt2.setEnabled(true);
}
}
class MyAdapter extends BaseAdapter{
private Activity activity;
public MyAdapter(Activity activity){
this.activity = activity;
}
@Override
public int getCount() {
// ori表示到目前为止的前几页的总共的个数。
int ori = VIEW_COUNT * index;
/**
* 值的总个数-前几页的个数就是这一页要显示的个数,如果比默认的值小,说明这是最后一页, 只需显示这么多就可以了
*/
if (list.size() - ori < VIEW_COUNT) {
return list.size() - ori;
}
// 如果比默认的值还要大,说明一页显示不完,还要用换一页显示,这一页用默认的值显示满就可以了。
return VIEW_COUNT;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = LayoutInflater.from(activity).inflate(R.layout.lvdata, parent,false);
}
TextView name = (TextView)convertView.findViewById(R.id.lv_name);
TextView phone = (TextView)convertView.findViewById(R.id.lv_phone);
Map<String,Object> map = (Map<String, Object>) list.get(position + index * VIEW_COUNT);
if(map != null){
name.setText(map.get("name").toString());
phone.setText(map.get("phone").toString());
}
return convertView;
}
}
}



    
[3] 腾讯微博api的蛋疼有关问题
    来源: 互联网  发布时间: 2014-02-18
腾讯微博api的蛋疼问题

最近在用腾讯微博的api时候,认证的时候发现有腾讯微博的redirectUri 10051错误,百度了一下说是没有填对redirecturi 我勒个去哪里有redirecturi呢,找了半天原来是


尼玛的写的说明是个啥啊,明明是应用网址变成了回调地址,腾讯蛋碎了。。。


    
最新技术文章:
▪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