当前位置:  编程技术>移动开发
本页文章导读:
    ▪IT外来工的小农生活        IT民工的小农生活 做销售,一般都是有了产品,市场宣传开道,然后销售人员找产品对应行业的客户去,打电话一家家的跟踪。 如果没有自己的产品,也没有代理别人的产品,那么卖什么?.........
    ▪ Parcelable传个Map的简略应用        Parcelable传个Map的简单应用 最简单的,主要是实现Parcelable的接口,重写那个CREATOR   测试用的接收信息Activity package com.nico; import android.app.Activity; import android.content.Intent; import android.os.Bundle; imp.........
    ▪ IntentFilter有关信息       IntentFilter相关信息 简述:结构化描述intent匹配的信息。包含:action,categories and data(via type,scheme ,path),还有priority, to order multiple matching filters.       IntentFilter 中如果action为空,则视为通配.........

[1]IT外来工的小农生活
    来源: 互联网  发布时间: 2014-02-18
IT民工的小农生活

做销售,一般都是有了产品,市场宣传开道,然后销售人员找产品对应行业的客户去,打电话一家家的跟踪。

如果没有自己的产品,也没有代理别人的产品,那么卖什么?一般会去卖个业务培训、业务咨询、流程优化咨询。然后从这些靠嘴靠PPT/EXCEL/WORD/VISIO的业务中落实到产品中,往往会落实为一套软件产品或者软件定制开发项目。然后如法继续炮制。

公司日常沟通,有邮件有MSN有短信有手机有座机。公司日常管理,有OA待办事项任务管理。公司还有财务,还有进销存管理。

公司架设一个网站,选择域名,选择虚拟主机或者自己买个机器托管到机房,自己开发个网站或者让别人定制个网站,或者搞个免费的网站建设工具配置一下。

实施要每天的项目实施计划、实施心得日志、会议纪要、需求&BUG列表、培训报告、总结报告。

服务支持也需要呼叫中心、工单管理、FAQ管理。在网站论坛上也做支持,在Q-Q-群也做支持。

研发也需要需求管理&BUG工具,把从客户、服务部门、实施部门、销售部门,甚至直接来自于老板的指示,都放进这个工具里面,然后开始执行修改开发,需要有自己的开发任务管理工具。

而销售部门,需要记录每个人的目前客户跟踪列表、客户的每个联系人的联系方式,哪些销售线索成交了,哪些销售线索失败了(客户明确表示不购买或者已 经购买了其他的),每天的跟踪日志列表在哪里。哪些客户是新开拓的客户,哪些客户是老客户新产生的销售线索,哪些客户是老客户推荐来的新客户。

对于大客户,一般都是团队销售,这个大客户的销售线索当做一个大项目,项目由多个人参与。每个人和客户中的每个联系人说什么话了,都要让项目组的其 他人看到。这个项目中的各个联系人的明关系、暗关系都描述清楚,这个项目的每步推进计划,每个人在项目中的任务是什么,都需要明确,其实是团队共享该项 目,有团队项目任务。

这就是销售部门一般的管理。对于零售进商超、零售走连锁专卖店、走批发市场、走代理,那是另外的各种销售方式。社会的主流销售方式就这么几种。都有不同的软件工具。

有了这些工具,还有的上线会员工具。会员有优惠,会员有积分。积分可以换礼品,可以抵现金,可以抽奖,可以参加会员活动。

还有的开始上线维护老客户关系的工具。先搞日常的一些提醒,日常发些关怀短信和邮件,询问询问有啥不满意的或需求建议,日常联系着点,不断了关系。

也有人开始搞老客户再挖掘,比如销售人员主动联系老客户,鼓动老客户再购买、升级购买以旧换新购买、交叉购买,鼓动老客户推荐朋友购买,鼓动老客户发些产品使用感受文章影响一下想要购买的潜在客户或者购买了产品但使用效果不佳的成交客户。

这里面有很多软件工具,都是切入市场的机会。

做些小模块,做成B/S模式放到网上做应用托管服务,支付宝支付或汇款支付,很便宜,也不用打单,网上做宣传,找代理分销,不用实施,不用培训,不用出差,网上用Q-Q、BBS做支持,小日子就过呗。

1家客户1月100块钱,不算多吧。1年1000块。你发展100个,就是1年10万块。难道你没有信心连100个客户都发展不来。网上做宣传,找代理分销,总是可以的。如果你有200个客户,那么1年就是20万。你想不想?

走出作坊,走进作坊。每个人都想冲出去或者冲进来,就看你想怎么活。


    
[2] Parcelable传个Map的简略应用
    来源: 互联网  发布时间: 2014-02-18
Parcelable传个Map的简单应用

最简单的,主要是实现Parcelable的接口,重写那个CREATOR

 

测试用的接收信息Activity

package com.nico;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;

public class Test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent i = getIntent();
        Person p = i.getParcelableExtra("yes");
        System.out.println("---->"+p.name);
        System.out.println("---->"+p.map.size());
    }
}

 发送的Activity

package com.nico;

import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class TestNew extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent intent = new Intent();
        Person p = new Person();
        p.map = new HashMap<String,String>();
        p.map.put("yes", "ido");
        p.name="ok";
        intent.putExtra("yes", p);
        intent.setClass(this, Test.class);
        startActivity(intent);
    }
}

 Parcelable的实现类

package com.nico;

import java.util.HashMap;

import android.os.Parcel;
import android.os.Parcelable;

public class Person implements Parcelable {

	public HashMap<String,String> map = new HashMap<String,String> ();
	
	public String name ;
	@Override
	public int describeContents() {
		return 0;
	}

	@Override
	public void writeToParcel(Parcel dest, int flags) {

		dest.writeMap(map);
		dest.writeString(name);
	}
	public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {

		@Override
		public Person createFromParcel(Parcel source) {
			Person p = new Person();
			p.map=source.readHashMap(HashMap.class.getClassLoader());
			p.name=source.readString();
			return p;
		}

		@Override
		public Person[] newArray(int size) {
			// TODO Auto-generated method stub
			return null;
		}
	};

}

 


    
[3] IntentFilter有关信息
    来源: 互联网  发布时间: 2014-02-18
IntentFilter相关信息

简述:结构化描述intent匹配的信息。包含:action,categories and data(via type,scheme ,path),还有priority, to order multiple matching filters.
       IntentFilter 中如果action为空,则视为通配符,如果type为空,则intent必须不设type,否则匹配不上。
       data被分为3个属性:type,scheme,authority/path 任何设置的属性intent必须匹配上。
                           设置了scheme 而没设type,则intent也必须类似,不能设置type,也不能是content: URI.
                           设置了type而没设scheme:将匹配上没有URI的intent,或者content:,file:的uri。
                           设置了authority:必须指定一个或多个相关联的schemes
                           设置了path:唏嘘指定一个或多个相关联的schemes
       匹配规则:
           IntentFilter 匹配Intent的上的条件:
           Action : 值相同 ,或则IntentFilter未指定action.
           DataType:. 系统通过调用Intent.resolve(ContentResolver)获取type,通配符*
                     在Intent/IntentFilter的MIME type中使用,区分大小写
           DataScheme:系统通过调用Intent. getData() and Uri.getScheme())获取scheme, 区分大小写
           DataAuthority:必须有一个dataScheme匹配上且authority值匹配上,或者IntentFilter没有定义。 Intent. getData() and Uri.getAuthority()获取authority.
           DataPath: scheme and authority必须先匹配上 ntent. getData() and Uri.getPath(),获取. 或者IntentFilter没有定义
           Categories:all of the categories in the Intent match categories given in the filter 多余的Categorie,不影响intent匹配,如果IntentFilter
                  没有指定Categorie,则只能匹配上没有Categorie的intent。

常用intent列表:
Android Intent 用法汇总
显示网页
- <activity android:name="BrowserActivity" android:label="Browser" android:launchMode="singleTask" android:alwaysRetainTaskState="true" android:configChanges="orientation|keyboardHidden" android:theme="@style/BrowserTheme">
- <!--
For these schemes were not particular MIME type has been
                 supplied, we are a good candidate.
  -->
- <intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="http" />
  <data android:scheme="https" />
  <data android:scheme="about" />
  </intent-filter>
- <!--
  For these schemes where any of these particular MIME types
                  have been supplied, we are a good candidate.
  -->
- <intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.BROWSABLE" />
  <category android:name="android.intent.category.DEFAULT" />
  <data android:scheme="http" />
  <data android:scheme="https" />
  <data android:mimeType="text/html" />
  <data android:mimeType="text/plain" />
  <data android:mimeType="application/xhtml+xml" />
  <data android:mimeType="application/vnd.wap.xhtml+xml" />
  </intent-filter>
- <!--
We are also the main entry point of the browser.
  -->
- <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.LAUNCHER" />
  <category android:name="android.intent.category.BROWSABLE" />
  </intent-filter>
- <intent-filter>
  <action android:name="android.intent.action.WEB_SEARCH" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="" />
  <data android:scheme="http" />
  <data android:scheme="https" />
  </intent-filter>
- <intent-filter>
  <action android:name="android.intent.action.WEB_SEARCH" />
  <action android:name="android.intent.action.MEDIA_SEARCH" />
  <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
- <intent-filter>
  <action android:name="android.intent.action.SEARCH" />
  <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
  <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
- <intent-filter>
  <action android:name="android.net.http.NETWORK_STATE" />
  <action android:name="android.intent.action.PROXY_CHANGE" />
  </intent-filter>
  </activity>

1. Uri uri = Uri.parse("http://google.com"); 
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 
   3. startActivity(it);

显示地图

   1. Uri uri = Uri.parse("geo:38.899533,-77.036476"); 
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);  
   3. startActivity(it);  
   4. //其他 geo URI 範例 
   5. //geo:latitude,longitude 
   6. //geo:latitude,longitude?z=zoom 
   7. //geo:0,0?q=my+street+address 
   8. //geo:0,0?q=business+near+city 
   9. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom



路径规划

   1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); 
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 
   3. startActivity(it); 
   4. //where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456 


打电话
   1. //叫出拨号程序
   2. Uri uri = Uri.parse("tel:0800000123"); 
   3. Intent it = new Intent(Intent.ACTION_DIAL, uri); 
   4. startActivity(it); 

   1. //直接打电话出去 
   2. Uri uri = Uri.parse("tel:0800000123"); 
   3. Intent it = new Intent(Intent.ACTION_CALL, uri); 
   4. startActivity(it); 
   5. //用這個,要在 AndroidManifest.xml 中,加上 
   6. //<uses-permission id="android.permission.CALL_PHONE" /> 

传送SMS/MMS
   1. //调用短信程序
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 
   3. it.putExtra("sms_body", "The SMS text");  
   4. it.setType("vnd.android-dir/mms-sms"); 
   5. startActivity(it);

   1. //传送消息
   2. Uri uri = Uri.parse("smsto://0800000123"); 
   3. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
   4. it.putExtra("sms_body", "The SMS text"); 
   5. startActivity(it);

   1. //传送 MMS 
   2. Uri uri = Uri.parse("content://media/external/images/media/23"); 
   3. Intent it = new Intent(Intent.ACTION_SEND);  
   4. it.putExtra("sms_body", "some text");  
   5. it.putExtra(Intent.EXTRA_STREAM, uri); 
   6. it.setType("image/png");  
   7. startActivity(it); 

传送 Email
   1. Uri uri = Uri.parse("mailto:xxx@abc.com"); 
   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
   3. startActivity(it); 

   1. Intent it = new Intent(Intent.ACTION_SEND); 
   2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); 
   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={"me@abc.com"};   
   3. String[] ccs={"you@abc.com"};   
   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"));

   1. //传送附件
   2. Intent it = new Intent(Intent.ACTION_SEND); 
   3. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); 
   4. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3"); 
   5. sendIntent.setType("audio/mp3"); 
   6. startActivity(Intent.createChooser(it, "Choose Email Client"));

播放多媒体
       Uri uri = Uri.parse("file:///sdcard/song.mp3"); 
       Intent it = new Intent(Intent.ACTION_VIEW, uri); 
       it.setType("audio/mp3"); 
       startActivity(it);



       Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); 
       Intent it = new Intent(Intent.ACTION_VIEW, uri); 

       startActivity(it);



Market 相关
1.        //寻找某个应用
2.        Uri uri = Uri.parse("market://search?q=pname:pkg_name");
3.        Intent it = new Intent(Intent.ACTION_VIEW, uri); 
4.        startActivity(it); 
5.        //where pkg_name is the full package path for an application

1.        //显示某个应用的相关信息
2.        Uri uri = Uri.parse("market://details?id=app_id"); 
3.        Intent it = new Intent(Intent.ACTION_VIEW, uri);
4.        startActivity(it); 
5.        //where app_id is the application ID, find the ID  
6.        //by clicking on your application on Market home  
7.        //page, and notice the ID from the address bar


Uninstall 应用程序
1.        Uri uri = Uri.fromParts("package", strPackageName, null);
2.        Intent it = new Intent(Intent.ACTION_DELETE, uri);  
3.        startActivity(it);  

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