2016-04-13 26 views
1

着信SMSの内容を取得することはできますが、動作しないことを希望します。 実際にはトーストは表示されず、ログに何も表示されません。myreceiverは初期化されていません... マニフェスト:着信SMSの内容

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.locateit.antholife.locateit"> 

<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 

<receiver android:name=".MyReceiver"> 
    android:enabled="true" 
    android:exported="true" > 
    <intent-filter android:priority="999"> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/locate" 
    android:label="@string/app_nameprincipal" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

    <supports-screens 
     android:anyDensity="true" 
     android:largeScreens="true" 
     android:normalScreens="true" 
     android:resizeable="true" 
     android:smallScreens="true" 
     android:xlargeScreens="true" /> 

    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".Main2Activity" 
     android:label="@string/title_activity_main2" 
     android:theme="@style/AppTheme.NoActionBar" /> 
    <activity 
     android:name=".Changelog" 
     android:label="@string/title_activity_changelog" 
     android:theme="@style/AppTheme.NoActionBar" /> 

    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="AIzaSyBfmF3WWxsPhufZR5keiDNRy-33hJI1rvM" /> 

    <activity 
     android:name=".lequipe" 
     android:label="@string/nomequipe" /> 
    <activity 
     android:name=".Setting" 
     android:label="@string/title_activity_setting" /> 
    <activity android:name=".MDPinterne" /> 
    <activity android:name=".Bluetooth"></activity> 
</application> 

</manifest> 

のonCreate:

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

    ActionBar actionBar = getSupportActionBar(); 
    actionBar.hide(); 
    MyReceiver sms = new MyReceiver(); 
    Log.v("aha3", "smslancer"); 

とJavaファイル:

だからここマニフェスト、のonCreate最初のアクティビティ、そして私の受信機のJavaファイルがあります
public class MyReceiver extends BroadcastReceiver { 
public MyReceiver() { 
} 

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


    Bundle extra = intent.getExtras(); 
    if (extra != null) { 
     Object[] pdus = (Object[]) extra.get("pdus"); 
     final SmsMessage[] messages = new SmsMessage[pdus.length]; 
     for (int i = 0; i < pdus.length; i++) { 
      messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
     } 
     if (messages.length > -1) { 
      Log.v("Ch", "Marche1"); 
      for (int i = 0; i < messages.length; i++) { 
       Log.v("Ch", "Marche2"); 
       final String messageBody = messages[i].getMessageBody(); 
       final String phoneNumber = messages[i].getDisplayOriginatingAddress(); 
       Toast.makeText(context, "Expéditeur:" + phoneNumber, Toast.LENGTH_LONG).show(); 
       Toast.makeText(context, "Message : " + messageBody, Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

} 

答えて

0

マニフェストの受信者XMLをアプリケーションタグ内に移動します。

<application 
android:allowBackup="true" 
android:icon="@mipmap/locate" 
android:label="@string/app_nameprincipal" 
android:supportsRtl="true" 
android:theme="@style/AppTheme"> 
<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

....... 
<receiver android:name=".MyReceiver"> 
android:enabled="true" 
android:exported="true" > 
<intent-filter android:priority="999"> 
    <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
</intent-filter> 
</receiver> 
</application> 
+0

@Antholifeは、私が理解 –

+0

はい、私はその:)ありがとうしてみてください、あまりにも早く答え私の答えを編集しました – Antholife

関連する問題