Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Sim卡更改检测,日志中有错误_Android_Service_Broadcastreceiver - Fatal编程技术网

Android Sim卡更改检测,日志中有错误

Android Sim卡更改检测,日志中有错误,android,service,broadcastreceiver,Android,Service,Broadcastreceiver,我在参考LogCat时出错。我已存储存储的sim卡(第1张)并与当前的sim卡(第2张)进行比较,如果sim卡序列不同,logcat将打印出更改的sim卡。但我在运行服务时遇到了问题。下面是我的代码 Tag SimSerial:: 8944110065486249080 Tag Current Sim Serial:: 8944110065486249080 Tag Sim Status Sim no changed !!! Tag

我在参考LogCat时出错。我已存储存储的sim卡(第1张)并与当前的sim卡(第2张)进行比较,如果sim卡序列不同,logcat将打印出更改的sim卡。但我在运行服务时遇到了问题。下面是我的代码

Tag SimSerial::            8944110065486249080  
Tag Current Sim Serial::   8944110065486249080  
Tag Sim Status             Sim no changed !!!  

Tag SimSerial::            8944110065486249080   
Tag Current Sim Serial::   8944110065486249080   
Tag Sim Status             Sim changed !!!
日志猫显示

Tag SimSerial::            8944110065486249080  
Tag Current Sim Serial::   8944110065486249080  
Tag Sim Status             Sim no changed !!!  

Tag SimSerial::            8944110065486249080   
Tag Current Sim Serial::   8944110065486249080   
Tag Sim Status             Sim changed !!!
第一部分是正确的,但第二部分的Sim状态也不应为“Sim未更改”。 有人知道错误在哪里吗

Tag SimSerial::            8944110065486249080  
Tag Current Sim Serial::   8944110065486249080  
Tag Sim Status             Sim no changed !!!  

Tag SimSerial::            8944110065486249080   
Tag Current Sim Serial::   8944110065486249080   
Tag Sim Status             Sim changed !!!
BootCompleteReceiver

Tag SimSerial::            8944110065486249080  
Tag Current Sim Serial::   8944110065486249080  
Tag Sim Status             Sim no changed !!!  

Tag SimSerial::            8944110065486249080   
Tag Current Sim Serial::   8944110065486249080   
Tag Sim Status             Sim changed !!!
public class BootCompleteReceiver extends BroadcastReceiver {   

    Context context;
    SharedPreferences settings;
    public static final String PREFS_NAME = "MyPrefsFile";

     @Override  
    public void onReceive(Context context, Intent intent) {  

        Intent service = new Intent(context, MyService.class);  
        context.startService(service);   

    }  

}
MyService

Tag SimSerial::            8944110065486249080  
Tag Current Sim Serial::   8944110065486249080  
Tag Sim Status             Sim no changed !!!  

Tag SimSerial::            8944110065486249080   
Tag Current Sim Serial::   8944110065486249080   
Tag Sim Status             Sim changed !!!
public class MyService extends Service {  

    String storedSimSerial;
    String currentSimSerial;

    @Override  
    public void onCreate() {  
        super.onCreate();    
    }  

    @Override  
    public int onStartCommand(Intent intent, int flags, int startId) {  

        Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();

        TelephonyManager telephoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        storedSimSerial = telephoneMgr.getSimSerialNumber();
        Log.e("SimSerial::",storedSimSerial);

        TelephonyManager tmMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        currentSimSerial = tmMgr.getSimSerialNumber();
        Log.e("Current Sim Serial::",currentSimSerial);

        if(currentSimSerial==storedSimSerial)
        {
            Log.e("Sim Status","Sim no changed !!!");
        }             
        else
            Log.e("Sim Status","Sim changed !!!");

        return Service.START_STICKY;  
    }  

    @Override
    public void onDestroy() {

        super.onDestroy();
        Toast.makeText(this, "Service Destroy", Toast.LENGTH_LONG).show();
    }

    @Override  
    public IBinder onBind(Intent arg0) {  
        return null;  
    }  
} 

写下你的
如果
如下:

Tag SimSerial::            8944110065486249080  
Tag Current Sim Serial::   8944110065486249080  
Tag Sim Status             Sim no changed !!!  

Tag SimSerial::            8944110065486249080   
Tag Current Sim Serial::   8944110065486249080   
Tag Sim Status             Sim changed !!!
    if(currentSimSerial.equals(storedSimSerial))
    {
        Log.e("Sim Status","Sim no changed !!!");
    }             
    else
        Log.e("Sim Status","Sim changed !!!");

当您使用
==
时,您比较的是对象引用,而不是很少适用于字符串的内容。

谢谢。它解决了!真不敢相信这么小的错误浪费了我几个小时来寻找答案。
Tag SimSerial::            8944110065486249080  
Tag Current Sim Serial::   8944110065486249080  
Tag Sim Status             Sim no changed !!!  

Tag SimSerial::            8944110065486249080   
Tag Current Sim Serial::   8944110065486249080   
Tag Sim Status             Sim changed !!!