当前位置:  编程技术>移动开发
本页文章导读:
    ▪NSLog warning:”format not a string literal and no format arguments”的临时解决办法        NSLog warning:”format not a string literal and no format arguments”的临时解决方法 在以前的Mac OSX版本中,用Objective c写程序时,写这样一句是没有任何问题的:------------------.........
    ▪ 自定义Activity间跳转成效        自定义Activity间跳转效果 两个Activity跳转的时候,自定义翻页效果://这段只是示例代码,要看到我下面的图片演示的结果还需要自己写相应的Activity Intent intent = new Intent(FirstActivity.this, Seco.........
    ▪ 怎么截取指定号码的短信,并且不让系统截取到通知用户       如何截取指定号码的短信,并且不让系统截取到通知用户 之前在做黑名单屏蔽短信的时候,遇到一个比较棘手的问题,就是我截取我指定号码的短信之后,但是我如何不让系统通过通知栏通.........

[1]NSLog warning:”format not a string literal and no format arguments”的临时解决办法
    来源: 互联网  发布时间: 2014-02-18
NSLog warning:”format not a string literal and no format arguments”的临时解决方法

在以前的Mac OSX版本中,用Objective c写程序时,写这样一句是没有任何问题的:
----------------------
NSString *name = @"Mimi";
NSLog(name);

而到了SnowLeopard,用上Xcode 3.2之后,如果这么写总是会有一个“format not a string literal and no format arguments”warning, 虽说这个Warning不管它也没什么,但让有洁癖的人总是心里疙疙瘩瘩的。

究其原因,这个Warning的产生是因为在GCC 4.2中使用了更严格的类型检测所致。

这个问题貌似还没有很完美的解决办法。如果真的看着这些Warning心烦的话,可以在xcode里通过禁用“Typecheck Calls to printf/scanf选项”来去掉。截图如下:

 

 

 

相关资料地址: http://stackoverflow.com/questions/1677824/snowleopard-xcode-warning-format-not-a-string-literal-and-no-format-arguments


    
[2] 自定义Activity间跳转成效
    来源: 互联网  发布时间: 2014-02-18
自定义Activity间跳转效果
两个Activity跳转的时候,自定义翻页效果:
//这段只是示例代码,要看到我下面的图片演示的结果还需要自己写相应的Activity
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(intent, 11);
    		
//添加界面切换效果,注意只有Android的2.0(SdkVersion版本号为5)以后的版本才支持
int version = Integer.valueOf(android.os.Build.VERSION.SDK);   
if(version  >= 5) {   
     overridePendingTransition(R.anim.zoomin, R.anim.zoomout);  //此为自定义的动画效果,下面两个为系统的动画效果
   //overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);  
     //overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
}  


下面为两个自定义的动画效果XML文件,存放位置为:res/anim/

1,动画退出效果:zoomout.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:zAdjustment="top">
    <scale android:fromXScale="1.0" android:toXScale=".5"
           android:fromYScale="1.0" android:toYScale=".5"
           android:pivotX="50%p" android:pivotY="50%p"
           android:duration="3000" />
           
           <!-- 系统内置的动画持续时间
           android:duration="@android:integer/config_mediumAnimTime" 
           -->
    <alpha android:fromAlpha="1.0" android:toAlpha="0"
           android:duration="3000"/>
</set> 

动画演示结果:




2,动画进入效果:zoomin.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator">
    <scale android:fromXScale="0.1" android:toXScale="1.0"
           android:fromYScale="0.1" android:toYScale="1.0"
           android:pivotX="50%p" android:pivotY="50%p"
           android:duration="3000" />  
 <!-- 这里为了看到动画演示效果,把动画持续时间设为3秒 -->  
    <alpha 
		android:fromAlpha="0.1" 
		android:toAlpha="1.0" 
		android:duration="3000" />                
</set>


动画演示结果:
1.进入过程中效果


2.进入后效果


    
[3] 怎么截取指定号码的短信,并且不让系统截取到通知用户
    来源: 互联网  发布时间: 2014-02-18
如何截取指定号码的短信,并且不让系统截取到通知用户

之前在做黑名单屏蔽短信的时候,遇到一个比较棘手的问题,就是我截取我指定号码的短信之后,但是我如何不让系统通过通知栏通知用户,在网上也寻找了很久,也有点眉目了,以下是别人使用 ContentObserver 来监听短信数据库变化来实现的。

 

public class ScreenTest extends Activity {   
  
  class SmsContent extends ContentObserver{   
  
  private Cursor cursor = null;   
  
  public SmsContent(Handler handler) {   
  
  super(handler);   
  
  }   
  
  /**  
 
  * @Description 当短信表发送改变时,调用该方法  
 
  * 需要两种权限  
 
  * android.permission.READ_SMS 读取短信  
 
  * android.permission.WRITE_SMS 写短信  
 
  * @Author Snake  
 
  * @Date 2010-1-12  
 
  */  
  
  @Override  
  
  public void onChange(boolean selfChange) {   
  
  // TODO Auto-generated method stub   
  
  super.onChange(selfChange);   
  
  //读取收件箱中指定号码的短信   
  
  cursor = managedQuery(Uri.parse("content://sms/inbox"), new String[]{"_id", "address", "read"}, " address=? and read=?", new String[]{"12345678901", "0"}, "date desc");   
  
  if (cursor != null){   
  
  ContentValues values = new ContentValues();   
  
  values.put("read", "1"); //修改短信为已读模式   
  
  cursor.moveToFirst();   
  
  while (cursor.isLast()){   
  
  //更新当前未读短信状态为已读   
  
  getContentResolver().update(Uri.parse("content://sms/inbox"), values, " _id=?", new String[]{""+cursor.getInt(0)});   
  
  cursor.moveToNext();   
  
  }   
  
  }   
  
  }   
  
  }   
  
  /** Called when the activity is first created. */  
  
  @Override  
  
  public void onCreate(Bundle savedInstanceState) {   
  
  super.onCreate(savedInstanceState);   
  
  setContentView(R.layout.main);   
  
  SmsContent content = new SmsContent(new Handler());   
  
  //注册短信变化监听   
  
  this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"),    
  
  
true, content);   
  
  }   
  
  }   
  
  public class ScreenTest extends Activity {   
  
  class SmsContent extends ContentObserver{   
  
  private Cursor cursor = null;   
  
  public SmsContent(Handler handler) {   
  
  super(handler);   
  
  }   
  
  /**  
 
  * @Description 当短信表发送改变时,调用该方法  
 
  * 需要两种权限  
 
  * android.permission.READ_SMS读取短信  
 
  * android.permission.WRITE_SMS写短信  
 
  * @Author Snake  
 
  * @Date 2010-1-12  
 
  */  
  
  @Override  
  
  public void onChange(boolean selfChange) {   
  
  // TODO Auto-generated method stub   
  
  super.onChange(selfChange);   
  
  //读取收件箱中指定号码的短信   
  
  cursor = managedQuery(Uri.parse("content://sms/inbox"), new String[]{"_id", "address", "read"}, " address=? and read=?", new String[]{"12345678901", "0"}, "date desc");   
  
  if (cursor != null){   
  
  ContentValues values = new ContentValues();   
  
  values.put("read", "1"); //修改短信为已读模式   
  
  cursor.moveToFirst();   
  
  while (cursor.isLast()){   
  
  //更新当前未读短信状态为已读   
  
  getContentResolver().update(Uri.parse("content://sms/inbox"), values, " _id=?", new String[]{""+cursor.getInt(0)});   
  
  cursor.moveToNext();   
  
  }   
  
  }   
  
  }   
  
  }   
  
  /** Called when the activity is first created. */  
  
  @Override  
  
  public void onCreate(Bundle savedInstanceState) {   
  
  super.onCreate(savedInstanceState);   
  
  setContentView(R.layout.main);   
  
  SmsContent content = new SmsContent(new Handler());   
  
  //注册短信变化监听   
  
  this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, content);   
  
  }   
  
  }  

 http://bingtian.iteye.com/blog/641566


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