2017-07-16 3 views
-1

私はスマートフォンからSMSを読み取るためのシンプルなアプリを作りようとしています 私のコードで実行しましたが、私のアプリケーションには何も表示されません 私はこの変数curを見つけることができません見つけたどのようにアンドロイドからSMSを読む

ここで問題は何ですか?あなたLoadInboxMassgesで

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

private static final int request_permission = 123; 
@RequiresApi(api = Build.VERSION_CODES.M) 
public void ButtonLoad(View view) { 

     if((int) Build.VERSION.SDK_INT >=23){ 

     if(ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_SMS)!= PackageManager.PERMISSION_GRANTED){ 

      if(!shouldShowRequestPermissionRationale(Manifest.permission.READ_SMS)){ 


       requestPermissions(new String[]{Manifest.permission.READ_SMS},request_permission); 
      } 

      return; 
     } 
    } 
    LoadInboxMassges(); 

} 

    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    switch (requestCode){ 

     case request_permission: 
      if (grantResults[0]==PackageManager.PERMISSION_GRANTED){ 


       LoadInboxMassges(); 

      }else { 


       //permission_Denied 

      } 





    } 
} 



void LoadInboxMassges(){ 

    try { 
     String sms = ""; 
     Uri uriSMSURI = Uri.parse("content://sms/inbox"); 
     Cursor cur = getContentResolver().query(uriSMSURI, null,null, null, null); 
     cur.moveToPosition(0); 
     while (cur.moveToNext()) { 

      sms += "From : " + cur.getString(cur.getColumnIndex("adress")) + " : " + cur.getString(cur.getColumnIndex("body")) + "\n"; 


      TextView txtDisplay = (TextView) findViewById(R.id.txtv); 


      txtDisplay.setText(sms); 


     } 
    }catch (Exception ex) 
    { 

    } 

} 

答えて

0

1は変更してcur.moveToPosition(0);

2ワードこの線の"adress"この行を削除します。

その他の提案:あなたの受信トレイに

1リーディングSMS 長い時間を過ごすことがあります。

他のいくつかの誤りや不適切なものは、次のようなは、あなたのコードにあります。アプリがクラッシュする可能性があります。

2あなたのtxtDisplayは、のに配置する必要があります。

3 curが最後に来た後にcur.close();に電話する必要があります。

+0

はあなたが私の答えを受け入れなかったのはなぜそれが私のために働く –

+0

ありがとうございました、upvoteしてください –

+0

申し訳ありませんが、私は2つの回答を選択できると思いました ありがとうございますuuuu –

0
  1. ()メソッド
  2. コードcur.moveToPosition(0)を除去します。 "address"

    sms += "From : " + cur.getString(cur.getColumnIndex("adress")) + " : " + cur.getString(cur.getColumnIndex("body")) + "\n"; 
    

  3. 次のように変化

    if (cursor != null) { 
    
        while (cursor.moveToNext()) { 
         // read your cursor here 
        } 
    
+0

は、あなたがそれを好きなら –

+0

ご提案のためのuに卿に感謝しますか?それはあなたのために働いたと言いました。 –

関連する問題