2017-01-05 2 views
0

을 코드에서 잘 작동토스트하지만, 토스트에서 사용를 공유 할 의도는 의도를 사용하는 app.Please 도움을 충돌 (공유에 사용 특정 패키지에 복사 된 텍스트) 완벽하게 복사 된 텍스트입니다.이 응용 프로그램을 충돌 - 안드로이드

public class Clipboard extends Service { 
    private ClipboardManager mCM; 
    IBinder mBinder; 
    int mStartMode; 
    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     mCM = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
     mCM.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() { 
      @Override 
      public void onPrimaryClipChanged() { 
      String newClip = mCM.getText().toString(); 

      Toast.makeText(getApplicationContext(), newClip.toString(), Toast.LENGTH_LONG).show(); 
      Log.i("LOG", newClip.toString() + ""); 
      //intent starts ,this crashes the app 
      Intent sendIntent = new Intent(Intent.ACTION_SEND); 
      sendIntent.setType("text/plain"); 
      sendIntent.setClassName("com.package","com.package.activity"); 
      sendIntent.putExtra(Intent.EXTRA_TEXT, newClip.toString()); 
      startActivity(sendIntent); 
      } 
     }); 
     return mStartMode; 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     return null; 
    } 
} 

MainActivity :

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    startService(new Intent(this, Clipboard.class)); 
}} 
+1

LogCat에서 어떤 예외가 보이십니까? – rekire

답변

0

나는이 코드를 코드에 추가해야한다고 생각한다.

public class Clipboard extends Service { 
private ClipboardManager mCM; 
IBinder mBinder; 
int mStartMode; 
@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    mCM = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
    mCM.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() { 

     @Override 
     public void onPrimaryClipChanged() { 
      String newClip = mCM.getText().toString(); 

      Toast.makeText(getApplicationContext(), newClip.toString(), Toast.LENGTH_LONG).show(); 
      Log.i("LOG", newClip.toString() + ""); 
//intent starts ,this crashes the app 
      Intent sendIntent = new Intent(Intent.ACTION_SEND); 
      sendIntent.setType("text/plain"); 
      sendIntent.setClassName("com.package","com.package.activity"); 
      sendIntent.putExtra(Intent.EXTRA_TEXT, newClip.toString()); 

**//this flag is missing i think** 

      sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

      startActivity(sendIntent); 

       } 
      }); 
      return mStartMode; 
     } 


    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     return null; 
    }} 
+0

그 깃발은 무엇 – Sarath

+0

완벽하게 작동했다. 그러나 저에게 깃발은 무엇을 설명 하는가? – Sarath

+0

인 텐트가 문제를 두 번 이상 열어 줍니까? – Sarath

0

나는 문제가 주석 또는 적절한 활동 이름을 지정

sendIntent.setClassName("com.package","com.package.activity"); 

봅니다 아래 라인에 생각하고 주어진 활동을 등록하는 것을 잊지 마세요 매니페스트의 이름을 입력하고 코드를 실행하십시오.

희망이 도움이 될 것입니다!

+0

패키지는 문제가 안된다 내가 그 (것)들을 시도했다 – Sarath

관련 문제